我之前使用以下内容清除并重置Facebook访问令牌
[FBSession.activeSession closeAndClearTokenInformation];
由于更新到4.0,这不再有效。 FBSession.activeSession
已改为[FBSDKAccessToken currentAccessToken]
。
但是我找不到与最新版本一起使用的最新版本的closeAndClearTokenInformation。有什么建议?
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可以用于“kiosk”应用程序;我想这些应用程序旨在让不止一个人定期登录。
有一点需要注意,这个登录方法创建了一个为肖像模式设置的模态UIWebView。我不确定是否有可能改变它。
Swift 2+简单解决方案
FBSDKLoginManager().logOut()
Swift 5+简单解决方案
LoginManager().logOut()
在swift中,您可能需要执行以下操作以完全关闭会话:
import FacebookCore
import FacebookLogin
//...
//in your method:
let fbLoginManager = LoginManager()
fbLoginManager.logOut()
AccessToken.current = nil
UserProfile.current = nil