重置Facebook令牌参考 - Facebook SDK 4.0

问题描述 投票:13回答:3

我之前使用以下内容清除并重置Facebook访问令牌

[FBSession.activeSession closeAndClearTokenInformation];

由于更新到4.0,这不再有效。 FBSession.activeSession已改为[FBSDKAccessToken currentAccessToken]

但是我找不到与最新版本一起使用的最新版本的closeAndClearTokenInformation。有什么建议?

ios objective-c facebook-sdk-4.0
3个回答
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可以用于“kiosk”应用程序;我想这些应用程序旨在让不止一个人定期登录。

有一点需要注意,这个登录方法创建了一个为肖像模式设置的模态UIWebView。我不确定是否有可能改变它。


5
投票

Swift 2+简单解决方案

FBSDKLoginManager().logOut()

Swift 5+简单解决方案

LoginManager().logOut()

0
投票

在swift中,您可能需要执行以下操作以完全关闭会话:

import FacebookCore
import FacebookLogin

//...

//in your method:

let fbLoginManager = LoginManager()
fbLoginManager.logOut()
AccessToken.current = nil
UserProfile.current = nil
© www.soinside.com 2019 - 2024. All rights reserved.