私のアプリケーションの1つでは、クライアント側のFacebook javascript apiを使用して、ユーザーのFacebookログインステータスを追跡しています。
すでにFacebookアプリケーションに接続しているユーザーがいますが、ユーザーはFacebookにログインしています。
これで、FB.getSession()を呼び出すと、nullが返されますが、FB.getLoginStatus()を呼び出すと、response.session...も返されません。
この動作はブラウザによって異なります。Chromeでは正常に機能しますが、Firefox 4では機能しません。FirefoxでCookieをクリアしても、期待どおりに機能しません。
このクライアント側のAPIは信頼されていますか、それともサーバー側のAPIを選択する必要がありますか?
コード:
window.fbAsyncInit = function() {
FB.init({
appId: '0000000000',
status: true,
cookie: true,
xfbml: true
});
FB.getLoginStatus(function(response) {
if (response.session) {
// This block should have been called.
alert('logged in')
} else {
// no user session available, someone you dont know
alert('not logged in')
}
}, true);
var session = FB.getSession(); //Must not return null...
};
何か案が?