0

こんにちは、fb キャンバス アプリケーションを開発しています。このアプリケーションはコントロール パネルのようなもので、ボタンをクリックするとアプリの他のセクションに移動します。

私はfacebookのユーザーIDを使用して、ユーザーがアプリケーションを使用できるかどうかを判断します。これはほんの数人のためなので、私の問題は、facebookがユーザーIDを提供する場合と提供しない場合があることです。この単純なコードを使用します

$facebook = new Facebook(array(
  'appId'  => 'YOUR_APP_ID',
  'secret' => 'YOUR_APP_SECRET',
  'cookie' => true,

));

// Get User ID
$user = $facebook->getUser();

if ($user){ $auth=true; }else{ $auth=false; }

このコードは、すべてのファイルに含める「config.php」内にあります。次に、$auth を使用して、必要な情報をユーザーが表示できるかどうかを判断します。これは常にメイン ページで機能しますが、ジャンプするときもあります。アプリの他のページ(config.phpも含む)にアクセスしても、userIdが表示されません。奇妙な部分は、時々表示されることです

これをセッションに保存しようとしましたが、ユーザーIDが表示されない場合、セッションも存在しないことに気付きました:S

4

1 に答える 1

0

編集: 申し訳ありませんが、キャンバス アプリを開発していることに気づきませんでした。ただし、ユーザー ID をフェッチするだけでは不十分であることを伝えるために、ここでは省略します。

Facebook 認証を処理する最も簡単な方法は、おそらく、Web サイトにJS-lib とログイン ボタンを統合することです。php SDK は「自動的に」認証セッションを認識するので、その必要はありません :)

別の注意点として、ID を使用するだけではユーザーを認証するのに十分ではありません。meユーザーがアプリを認証したことを完全に確認するには、グラフ API を使用して取得する必要があります。

try {
    $user_profile = $facebook->api('/me','GET');
} catch (Exception $e) {
    //Not authenticated
}
于 2012-05-04T09:13:41.703 に答える