2

ユーザーは自分のFacebookアカウントを使用して自分のウェブサイトにログインできましたが、FacebookのJavaScript SDKのFB.loginの最終的なリダイレクトが失敗し、エラーを表示して返します

私は、次の標準のFacebookのJavaScript SDKのコードを使用します

window.fbAsyncInit = function() { 
    FB.init({ 
    appId  : '<MY_APP_ID>', 
    status  : true, // check login status immediately 
    cookie  : true, // enable cookies to allow the server to access the session 
    xfbml  : false // because I don't use XFBML 
    }); 
    FB.login(function(response) { 
    // code that deals with `response`, whether null or not 
    }); 
} 

をしかし、私は、ブラウザのキャッシュをクリアして、このコードを(Facebookのライブラリがロードされた後)にトリガ場合は、次のように起こる:

  1. Facebookのログインダイアログがポップアップ表示されます。
  2. このFacebookアプリにアクセスできるユーザーの認証情報を入力すると、新しいログイン場所を登録するかどうかを尋ねるダイアログが表示されます。

エラーがログインプロセスの一部として発生している可能性があり:

  • にかかわらず、前のステップで実行されるアクションの、ダイアログボックスは、次のエラーメッセージが表示されます。このウィンドウを閉じてアプリケーションに戻ってみることもできますが、再度ログインするように求められます。おそらく、アプリケーションのバグが原因です。

  • FB.loginのresponseにエラーメッセージが含まれています。ブラウザの状態を調べると、ログイン情報がFacebook Cookieに保存されていることがわかります。上記のコードを再度トリガし、キャッシュをクリアすることなく、今度は成功します。

    なぜ初めて動作しないのですか?

    答えて

    2

    Facebook's OAuth 2.0 and HTTPS Migrationのため、JavaScript SDK内で2011年10月1日以降にOAuth 2.0を使用しても正しく動作しません。

    ていることを確認し、上記の例の仕事をするために:レスポンスを扱うコードに

    • あなたFB.init呼び出しセットtrueoauthを(example usageを参照)
      • あなたはFB.loginのresponseauthResponsesessionではなく)のフィールドを読み取っています。
      • FB.getAuthResponse(FB.getSessionではない)を呼び出し、responseからsignedRequestを読み込んでいます。
  • 関連する問題