2015-04-02 45 views
12

我以前使用下面的清除和重置Facebook的訪問令牌復位Facebook的令牌參考 - Facebook的SDK 4.0

[FBSession.activeSession closeAndClearTokenInformation]; 

由於更新到4.0這不再有效。 FBSession.activeSession已更改爲[FBSDKAccessToken currentAccessToken]

但我無法找到最新版本的closeAndClearTokenInformation可以使用最新版本。有什麼建議麼?

回答

36
FBSDKLoginManager *logMeOut = [[FBSDKLoginManager alloc] init]; 
[logMeOut logOut]; 

[FBSDKAccessToken setCurrentAccessToken:nil]; 
[FBSDKProfile setCurrentProfile:nil]; 

註銷

然後,當你再次登錄時,請務必設置:

login.loginBehavior = FBSDKLoginBehaviorWeb; 

像這樣:

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 
login.loginBehavior = FBSDKLoginBehaviorWeb; 
[login logInWithReadPermissions:@[@"user_friends"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { 
     etc... 
}]; 

我在文檔中發現了一些信息,說FBSDKLoginBehaviorWeb可用於「信息亭」應用程序;我猜是應用程序旨在讓不止一個人常規登錄它們。

有一點需要注意,這個登錄方法創建了一個模式化的UIWebView,它被設置爲肖像模式。我不確定它是否有可能改變這一點。

+1

爲什麼你會包括'login.loginBehavior = FBSDKLoginBehaviorWeb;'? – memyselfandmyiphone 2015-04-07 18:27:37

+1

作爲一個註釋,第一個選項不需要'login.loginBehavior = FBSDKLoginBehaviorWeb;'。如果你需要使用這個額外的行,我認爲你已經設置了錯誤的SDK。 – memyselfandmyiphone 2015-04-08 18:42:30

+0

真棒...... + 1000000 – 2015-12-20 09:28:15

3

斯威夫特2+ 簡單的解決方案

FBSDKLoginManager().logOut() 
+0

這會重置/刪除有效的訪問令牌嗎? – 2016-09-13 03:32:01

+0

'LoginManager().logOut()'用於最新的快速Facebook Lib – Allreadyhome 2017-04-27 13:46:12