2011-09-10 68 views
1

我最近將Facebook支持集成到了我工作的iPhone應用程序中。我可以登錄用戶並使API調用正常,但我最近注意到了一些奇怪的行爲。Facebook iOS SDK:從桌面註銷Facebook之後iPhone上的會話無效

用戶登錄後,我將訪問令牌和過期日期存儲在NSUserDefaults中。在執行Facebook API調用之前,我使用[session isSessionValid]來確保會話有效。

如果用戶從桌面登錄到Facebook然後註銷,則會出現此問題。 [會話isSessionValid]仍然會返回YES,但Facebook API調用失敗,並顯示錯誤:

「驗證訪問令牌時出錯:這可能是因爲用戶已註銷或可能是由於系統錯誤。

有什麼我做錯了,還是這是一個Facebook的錯誤?

回答

6

即使您將訪問令牌和過期日期存儲在NSUserDefaults中,每次用戶輸入您的應用程序時都需要驗證它們,例如,當用戶更改其密碼時,offline_access權限訪問令牌可能失效。

當你的應用程序啓動時,你只需要調用圖API「我」,如果你得到異常,你只需要重新授權,然後你繼續定期的API調用工作流程。

希望這有助於

+0

這是好的,我想加起來,你還需要註銷並從磁盤刪除訪問令牌信息接收訪問令牌異常時,則重新授權。 – Lio

+0

謝謝。我添加了代碼重新授權的錯誤,它似乎工作正常。 – cprogrammer