1

Facebook 経由でのログインに依存する Web アプリを作成しています。これが私がやりたいことです:

  1. ユーザーが Web アプリの [Connect with Facebook] ボタンをクリックすると、ブラウザーで別のタブが開き、アプリを認証できる Facebook ログイン リンクが表示されます。

  2. ユーザーがアプリを認証すると、ログイン タブが閉じ、ユーザーは元の Web アプリ ページに移動します。

  3. Web アプリは、ユーザーが Facebook に接続したことを検出し、ユーザーをログインさせます。

現在、私が考えることができる唯一の解決策は、ユーザーがログインしているかどうかを確認するために Web アプリで継続的に Facebook にクエリを実行することです。これを行うためのより良い方法はありますか?

4

1 に答える 1

2

ログインをFacebook Javascript SDKと統合します。(PHP sdk ではなく) ページをリロードする必要はありません。コールバックで、ログインしているユーザーの状態を処理できます。

//load the async FB sdk
<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : 'YOUR_APP_ID', // App ID
      channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });

    // Additional initialization code here
  };

  // Load the SDK Asynchronously
  (function(d){
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all.js";
     ref.parentNode.insertBefore(js, ref);
   }(document));

//Do something when the user is logged in
FB.Event.subscribe('auth.login', function(response) {
  //do something with response object
});
</script>
于 2012-08-21T06:17:03.970 に答える