2015-04-02 46 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