0

有用な回答を提供してくれるすべての人に感謝します。質問は非常に単純ですが、理解できません.キャンバス内の Facebook クロムにいる。基本的には、署名されたリクエスト パラメータにアクセスし、ユーザーに必要な要件でアプリを承認するように求めるだけです。たとえば、フレンド リスト、ユーザー ID、名前、壁に写真を投稿する機能などのユーザー情報などです。次のようになります。

<?php 

 $app_id = "YOUR_APP_ID";

 $canvas_page = "YOUR_CANVAS_PAGE_URL";

 $auth_url = "http://www.facebook.com/dialog/oauth?client_id=" 
        . $app_id . "&redirect_uri=" . urlencode($canvas_page);

 $signed_request = $_REQUEST["signed_request"];

 list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

 $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);

 if (empty($data["user_id"])) {
        echo("<script> top.location.href='" . $auth_url . "'</script>");
 } else {
        echo ("Welcome User: " . $data["user_id"]);
 } 
 ?>

これ以上データが必要な場合は、キャンバス ページの URL の末尾にあるスコープ パラメータを使用して指定します。フレンド リストへのアクセス、投稿機能などです。したがって、この部分は index.php ファイルに入ると思います。ユーザー情報を取得したら、データベース内のそれぞれのテーブルに保存します。次に、すべてのデータを使用してセッションを開始し、アプリが機能する必要があり、ユーザーがログアウトすると、セッションを破棄します。私が理解できないことの 1 つは、ユーザーが Facebook に再度ログインするとどうなるかということです。彼/彼女はすでに私のアプリを承認しており、それは彼らのアプリリストにあると思います。彼らがリストのURLをクリックすると、私は彼らのデータを再度取得して私のアップにログインする方法がわかりません. 認証はサインアップのようなものですが、ログインはどうですか? セッションを開始するにはこれが必要です。データベースなどから保存されたデータをロードします。非常に初歩的な質問であることは知っていますが、私はこのFacebookアプリのことは初めてで、プロのプログラマーではありません。ドキュメントを読みましたが、ユーザーがアプリを承認した後もログインできません。どのように機能しますか? 助けてくれてありがとう、例がいいでしょう。

4

1 に答える 1

0

Facebookのログインは実際には両方が1つになっています。アプリが承認されているかどうかを確認します。承認されている場合は、ユーザーにアプリケーションを再承認させるのではなく、ログインしてFBユーザー情報を返します。関連するデータを保存し、データベースをFB APIがユーザーとして返しているものと照合して、実際にサイトにログインするのはあなた次第です。

これを使用するときは、FBユーザーIDをデータベースに保存し、ログインプロセスでFacebookユーザーが返されたときに、そのユーザーIDをデータベースと比較して、関連付けられたユーザーをロードします。

于 2012-10-11T15:26:03.630 に答える