リアルタイムでFacebook上でユーザーのログインステータスを取得します。その質問にはHow to know if a user log out of Facebook, FB.Event.Subscribe not workこの質問は私の他の質問に関連している
、私は、ユーザーがFacebookでのログアウト時にイベントを呼び出しを取り戻すことを試みました。しかし、それはまだ適切な答えがないので、私は別の方法を試す必要があります。私はこのように、ジャバスクリプトによってユーザーのログイン状態を取得するためにポーリングを試してみてください。
function checkLogin()
{
alert("in");
FB.getLoginStatus(function(response) {
if (response.status == "connected") {
// logged in and connected user, someone you know
alert("ok - 5 seconds has passed");
} else {
// no user session available, someone you dont know
alert("not ok");
}
});
t=checkLogin("timedCount()",5000);
}
これに問題があることである:関数が唯一の正しい結果にそれが呼び出される最初の時間を返します。その後、結果はキャッシュされているように見えますが、ユーザーはサイレントにのブラウザで別のタブでログアウトしていますが、応答として「接続済み」を継続的に受信しました。
この時点でFacebookはユーザーにログインを要求するダイアログを表示するので、これはうまくありません。しかし、ユーザーがキャンセルすると、彼はまだ自分のアプリケーションで作業することができます(アプリケーションサーバーとのセッションがまだ期限切れになっていません)。 documentで
、FB devがいることを言う:あなたはFB.getLoginStatusを起動すると
は、HTTP要求は、ユーザの現在の状態を確認するために www.facebook.comに行うことができます。しかし、 へ FB.getLoginStatusが既に 、このブラウザセッション中に呼び出され、セッションはクッキーの中に永続化された、HTTPリクエストfacebook.comは
を必要とされなくてもよいのであれば、私はこの効果を考えますキャッシュされた人によって引き起こされます。なぜFacebookがそれをそうするのだろうか。
誰もがこの問題の回避策を知っていますか?任意の助け
おかげで、
ホアンロング
この問題を修正するには:FBはいくつかの変更を取り除き、litte以上のコードを更新する必要があります。詳細:https://developers.facebook.com/blog/post/525/ –