2012-05-01 21 views
3

ユーザーがページの読み込みにログインしているかどうかを確認するためにウェブサイトを取得しようとしていますが、APIの指示にもかかわらず動作させることができません。例:彼はそのコードブロックの内側になり、この警告か何かがトリガー決して、ログアウトした場合、ユーザーは、ログインしている場合を除きFacebook API:ユーザーがログインしているかどうかを確認する

<!DOCTYPE html> 
    <html> 
     <head> 
      <title>My Facebook Login Page</title> 
     </head> 
     <body> 
      <div id="fb-root"></div> 
      <script> 
       alert('hello'); 
       window.fbAsyncInit = function() { 
        FB.init({ 
         appId : 'APP_ID', 
         status : true, 
         cookie : true, 
         xfbml : true, 
         oauth : true 
        }); 

        FB.getLoginStatus(function(response) { 
         console.log(response); 
         alert('hello2'); 
        }); 

        FB.Event.subscribe('auth.statusChange', function(response) { 
         alert('hello2'); 
        }); 

        FB.Event.unsubscribe('auth.statusChange'); 
       }; 
       (function(d){ 
        var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} 
        js = d.createElement('script'); js.id = id; js.async = true; 
        js.src = "//connect.facebook.net/en_US/all.js"; 
        d.getElementsByTagName('head')[0].appendChild(js); 
       }(document)); 
      </script> 
     </body> 
    </html> 

警告であってもヒットされることはありません。上記の末尾のカンマ(OAuthの:真を、)削除あなたの例では

答えて

0

//単にコピー/ペーストからなるが、デバッグするための任意の落とし穴

を排除する場合がありますこと、コンソールロギングが私の好ましい方法であるが、あなたからアラートが表示されない場合でも、状況はちょっと難しいです。

FB.Event.subscribe("auth.statusChange", function(response) { 
    console.log(response); 
}); 

FB.Event.unsubscribe("auth.statusChange"); 
// If you were to get subscribe to work, think about unsubscribing at some point to, since most likely that's only for an initial check 

また、イベントサブスクリプションの代わりにgetLoginStatusを使用してみます。

FB.getLoginStatus(function(response) { 
    console.log(response); 
}); 

応答はあなたのオブジェクトを与える必要がありますし、response.statusを確認することができ、その可能性のある値は次のとおり接続し、not_authorizedまたは response.authResponseのようなプロパティが含まれます不明:などaccessToken、expiresIn、時には

+0

auth.statusChangeをイベントがトリガーされず、ネットワークの待ち時間やサーバーのタイムアウトが原因であると考えています。私は、FBでの作業には、100%時間が「作業していない」ページの読み込みに柔軟性があることが必要であることを発見しました。リフレッシュによってイベントが正しくトリガーされることがあります。 –

+0

さて、ユーザーがfacebookにログインしている(アプリケーションのauthedやw/o appのauthedで)場合のみ動作することに気づいた ユーザーがログオフしているか、ログオフしているユーザーの状態を確認する方法はありますか?私はgetLoginStatusがユーザーがログオフされているかどうかをチェックする必要がありますが、アプリケーションが許可されている場合にのみそうであると感じます。 getLoginStatusの提案を受けましたが、まだ動作していないようです。 – Ven

+0

あなたの応答は、次のようなオブジェクトを返す必要があります:{authResponse:null、 ステータス: "不明"} –