2011-09-23 100 views
0

我有一個應用程序,用戶可以登錄使用Twitter和Facebook登錄,與twitter沒有任何問題,因爲訪問令牌永不過期,但Facebook的確如此。在我的應用程序中,如果用戶登錄Twitter,則可以連接fb帳戶,反之亦然。 Facebook基本上用於分享內容到用戶的牆上。我現在遇到的問題是,當用戶試圖使用他們的Facebook帳戶分享內容並且訪問令牌過期時,它會彈出一個登錄屏幕,登錄後它不再共享它。那麼維護這個令牌的最好方法是什麼?我從來沒有任何經驗使用任何其他應用程序,要求我再次登錄...他們如何管理這個問題我如何管理Facebook訪問令牌?

回答

0

我相信你必須要求權限「offline_access」,這使得你的訪問令牌持續到用戶決定刪除您的應用程序。在這種情況下,您可以決定通過取消授權URL從數據庫中刪除他的數據。

0

看到您需要了解Facebook和Twitter的工作方式不同。

你基本上可以在NSUserDefaults的的的accessToken存儲爲:

[[NSUserDefaults standardUserDefaults] setObject:_facebook.accessToken forKey:@"fb_access_token"]; 
[[NSUserDefaults standardUserDefaults] setObject:_facebook.expirationDate forKey:@"fb_exp_date"]; 

(我想你已經這樣做)

令牌持續到日到期,用戶修改賬戶密碼,或用戶刪除您的應用。在這種情況下你會得到一個例外。 獲得例外後,您必須重新登錄並獲取新的令牌,並且如果要再次發佈消息,則會出現對話框。 並且由於FBDialog是一個WebView,您不能在不發佈發佈的情況下執行該操作。