2011-08-02 8 views
0

Facebook PHP SDK 3.0を使用して、ユーザーが現在自分の情報を表示するためにFacebookアカウントにログインしているかどうかを確認しようとしています。Facebook PHP SDK 3.0(ユーザーがログインしていることを確認してください)

これは流れである:

  1. ユーザーは、自分のサイトに来て、私のFacebookアプリで自分のアカウントを接続しています。
  2. ユーザーは現在自分のサイトにログインしています。私のサイトは彼の情報にアクセスできます。
  3. ユーザーログアウトfacebook.com。
  4. ユーザーが自分のページを更新します。
  5. ユーザーは自分のサイトからログアウトしています。
  6. ユーザーはfacebook.comにログインします。
  7. ユーザーが自分のページを更新します。
  8. ユーザーは、自分のサイトにログオンするべきですが、そうではありません。

Javascript SDKを使用すると、ユーザーがログインしているかどうかを確認できます。手順はすべて正常に動作します。 PHP SDK 3.0で何をする必要がありますか?私はaccess_offline権限を与えたくありません。彼がfacebook.comにログインしているときにそのユーザーにアクセスしたいだけです。

どうもありがとう、 署名要求に基づいて、ジェレミー

答えて

0

は、uが、ユーザが前にアプリを承認しているかどうかを知ることができるはずです。 これは、ユーザーに関するいくつかのステータスを提供するはずです。彼は、FBにログインしている場合

をチェックするために、許可されたユーザのために、uが「/私」を照会しようとすると、あなたが成功し

+0

事はPHPのAPIから「ME /ことのFacebook上で私「再ログイン」の後に「ヌル」を私に与え、私のサイトに戻ってくるということです。しかし、JavaScript APIを使用すると、私がログインしていることがわかります。 – Jeremie

2

それを照会するすべてのページ(コアJS)にこのJavaScriptを追加できるかどうかを確認することができます。 login()およびlogout()は、システムのログインとログアウトのための関数です。 これにより、fbがログインするたびにチェックされ、ログイン用の関数が呼び出されます。 条件を満たします -

ユーザーは私のサイトにログオンされるべきですが、そうではありません。

<script type="text/javascript"> 
      window.fbAsyncInit = function() { 
       FB.init({appId: '113700398662301', status: true, cookie: true, xfbml: true}); 

       /* All the events registered */ 
       FB.Event.subscribe('auth.login', function(response) { 
        // do something with response 
        login(); 
       }); 
       FB.Event.subscribe('auth.logout', function(response) { 
        // do something with response 
        logout(); 
       }); 

       FB.getLoginStatus(function(response) { 
        if (response.session) { 
         // logged in and connected user, someone you know 
         login(); 
        } 
       }); 
      }; 
</script> 
関連する問題