2012-08-25 44 views
3

我有一個iPhone應用程序,可選 Facebook登錄,用戶可以在設置中激活。如何檢查和更新iOS SDK 3.0上Facebook令牌的狀態?

我不明白(沒有使用「專有」開關變量存儲到應用程序存儲器中)如何知道用戶是否過去已激活它,以顯示其狀態與交換機。

FBSession.activeSession.state沒有提供可靠的值,因爲該會話可能對應用「有效」,但對Facebook無效,如果令牌已過期。

成癮的是,我無法理解如何在令牌到期時(也許在幾個小時之後?)更新令牌,並且無需向用戶提供新的認證請求並切換到Facebook應用或Safari 。基本上,我想保留並使用令牌直到其有效,並在Facebook拒絕請求時立即續訂它,因爲該請求已過期。

預先感謝您!

+0

你是怎麼解決這個問題的? –

回答

2

您可以進行下面的例子電話:

BOOL openedWithCachedToken = [FBSession openActiveSessionWithAllowLoginUI:NO]; 

這不會出現一個登錄界面給用戶,如果沒有緩存的標記:

參見:https://developers.facebook.com/docs/reference/ios/3.1/class/FBSession#openActiveSessionWithAllowLoginUI%3A

一旦你如果緩存的令牌(openedWithCachedToken爲true),您可以提出請求(例如requestForMe)來驗證會話在Facebook上是否有效。如有必要,Facebook SDK會在您的頂部發送一個捎帶請求,以更新會話。不管你可以檢查你自己的請求完成處理程序來採取失敗的情況,這可能是一個無效的服務器會話。

相關問題