0

現在、サンドボックスモードをオンにしているFacebookアプリを持っています

私のアプリには何かに投票するボタンもあります。それはajax関数になります。人々がアプリをインストールしていない/ログインしていない場合、ajaxはメッセージを返し、fb.login()を呼び出してポップアップでログインするように人々に依頼します

ケースをテストしていて、アプリをインストールしたと仮定して、

  1. ajaxボタンのあるページに行く

  2. 次に、別のブラウザー タブでアカウント ページを開き、アプリを削除します。

  3. ブラウザのタブをページに入れ替えます

  4. btnをクリックすると、ajaxがインストールされていないというメッセージを返し、fb.login()を呼び出します

  5. エラーポップアップがポップアップします。ポップアップURLを確認します。セグメントにはaccessTokenが含まれています

  6. そしてもう一度btnをクリックすると、ajaxがインストールされていないというメッセージを返し、fb.login()を呼び出します

  7. 通常どおりログインボックスがポップアップします

違いは、成功したログイン URL には、url セグメントに accessToken が含まれないことです。

アプリを削除してページを更新していない場合、ポップアップボックスにログインしてもらいたい場合は、このケースの処理方法を教えてください。

4

1 に答える 1

0

一般に、Javascript で何かを行う前に、Facebook サーバーの ` getLoginStatus ' を呼び出して、まだログインしていることを確認できます。次に、その呼び出しが応答したら、アクションを処理します。

HTML ページにあるイベント サブスクライブリスナーを使用することもできます。ユーザーがログアウトした場合は、強制的に更新できます

FB.Event.subscribe('auth.authResponseChange', function(response) {
    alert('The status of the session is: ' + response.status);
});

PHP にコールバックすると、各 PHP ページが facebook オブジェクトを開始し ( Facebook SDKを確認)、ユーザーがログインしていることを確認する必要があります。

require 'facebook-php-sdk/src/facebook.php';

$facebook = new Facebook(array(
  'appId'  => 'YOUR_APP_ID',
  'secret' => 'YOUR_APP_SECRET',
));

// Get User ID
$user = $facebook->getUser();
于 2012-09-18T06:21:36.013 に答える