2011-08-26 30 views
0

我使用Facebook JavaScript SDK來認證我的網站上的用戶。這是我遇到麻煩的場景。註冊Facebook導致與JS SDK的奇怪行爲

如果我在我的網站和Facebook上登錄,那麼我在Facebook上註銷,似乎FB.getLoginStatus沒有被調用。進一步,如果我點擊我的登錄按鈕(即調用FB.login),然後放火引發錯誤"FB.login() called when user is already connected."

在上述所有的頂部,如果我設法得到它沒有返回值的Facebook的用戶。

所以總之,我不能得到facebook用戶,但我也不能撥打FB.login,所以我一無所有。

我失去了一些東西在這裏?

回答

0

如果有人在facebook.com上結束他們的會話,他們在您網站上的會話仍然存在 - 但如果您嘗試使用該會話獲取或發佈數據到Facebook,它可能會失敗。如果某人從facebook.com登出facebook,您可以通過訂閱auth.sessionChange或auth.logout(https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/)來處理此問題。

FB.Event.subscribe('auth.sessionChange', function(response) { 
    alert('The status of the session is: ' + response.status); 
}); 

如果你發現有人已註銷Facebook的直接,而使用你的網站,你可以從你的會話與

FB.logout() 

之後發生這種情況,您的FB.login(日誌出來)不會再犯這個錯誤了。錯誤是說當你已經在那個頁面上有一個會話時你正在嘗試運行FB.login()(因爲記住會話只在facebook.com上清除,而不是在你的站點上)