2010-12-18 74 views
0

我已經在我的應用程序中實現了Facebook Connect,並且它看起來工作正常。我可以發佈狀態和一切。但是,當我退出應用程序並再次運行該應用程序時,會話令牌似乎已過期,或者因爲我無法再發布。但是,如果我再次使用Facebook進行身份驗證,則表明權限已被授予,只有在調用該應用程序的回調時,纔可以再次發帖。Facebook連接iOS版自動退出應用程序後退出

我在做什麼錯了?

回答

2

你應該自己存儲你的Facebook對象的accessToken和expireTime。啓動後恢復並通過isSessionValid進行驗證,否則重新授權用戶。您可以使用它們的這些功能:

調用您的fbDidLogin中的存儲功能,並在應用程序啓動後調用恢復功能。

-(void)restoreFBAccessToken { 
    self.facebook.accessToken = [[NSUserDefaults standardUserDefaults] objectForKey:@"fb_accessToken"]; 
    self.facebook.expirationDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"fb_expirationDate"]; 
} 
-(void)storeFBAccessToken { 
    [[NSUserDefaults standardUserDefaults] setValue:self.facebook.accessToken forKey:@"fb_accessToken"]; 
    [[NSUserDefaults standardUserDefaults] setValue:self.facebook.expirationDate forKey:@"fb_expirationDate"]; 

    [[NSUserDefaults standardUserDefaults] synchronize]; 
} 
0

我也在我自己的應用程序中使用FB Connect,但以間接方式。我通過名爲ShareKit的第三方開源工具包使用它。 http://www.getsharekit.com/

我記得,ShareKit的工作非常好。即使關閉應用程序,它也會記住這些登錄信息。

由於ShareKit是開源的,我建議你看看它的代碼。它應該有一個答案給你。 :-)

0

您是否確保在應用重新加載後再次啓動會話?

+0

我甲肝的Facebook = [[Facebook的頁頭] initWithAppId:在viewDidLoad中:但它仍然沒有工作.. – quantum 2010-12-18 12:22:16

+0

我覺得還有一個[會話開始]。或類似的東西你可能不得不打電話。 – Domness 2010-12-29 12:23:47