2011-10-07 40 views
3

我知道這裏有類似的問題,但似乎沒有解決我遇到的問題,或者指的是較早的非OAuth版本的SDK。用戶在Facebook上註銷,JS SDK停止工作

我使用的是由Facebook提供的JS和PHP SDK。使用JS完成身份驗證,然後設置一個允許PHP SDK進行身份驗證的cookie,如Facebook推薦的那樣。

直到用戶在他們的網站上註銷Facebook(即他們不在我的網站上使用FB.logout方法)爲止,這種方式非常有效。 auth.statusChange,auth.authResponseChange或auth.logout方法都不會立即觸發,也不會觸發下一個頁面加載。但是,我可以看到即使我點擊Facebook站點(但不是用於簽名請求的fbsr_xxxxxxxxxx),cookie也正在更改。

我的困難是,下一頁加載,我不知道用戶退出Facebook。由於我仍然擁有帶訪問令牌的'fbsr_xxxxxxxxxx'Cookie,因此我可以繼續通過PHP SDK進行API調用,但JS SDK完全沒有響應。方法要麼抱怨沒有訪問令牌,要麼沒有完全運行它們的回調函數。

我在這裏錯過了一些完全明顯的東西嗎?我完全困惑,所以任何幫助真的很受歡迎。

FuzzyDunlop

+1

自從轉到誓言後,我遇到了同樣的問題。你有沒有在這個問題上取得進展? – charlie

+0

恐怕不是真的。我想我可能不得不手動啓動FB.Cookie.clearSignedrequestCookie()方法。另外,是的,在使用OAuth版本之前,我沒有遇到這個問題。 – dmnc

+1

聽起來,您可能遇到了您的auth.authResponseChange代碼問題。你能發佈你試圖使用的?它會立即觸發了我 – Abby

回答

-1

你需要有一個非過期的令牌,你可以得到使用脫機訪問權限,這樣就可以從你的應用程序存取權限的用戶的詳細信息,即使用戶退出Facebook的,那太工程直到用戶不改變他的密碼,如果他這樣做了,你又需要 請求一個新的令牌。

+0

編輯回答刪除txt spk的響應。 – Spudley

+0

擁有一個未到期的令牌可以讓我繼續使用PHP API,這並不是我的問題。我遇到的問題是,當用戶註銷Facebook時,JS SDK停止工作(即使使用非到期令牌),但我沒有收到此通知。 – dmnc

+1

我不確定你真的需要離線訪問來解決這個問題。有更好的方法,這對我來說似乎有點矯枉過正,離線訪問基本上建議你的用戶,你想在他們睡覺時他們的數據... – Abby