Reset Ссылка на токен Facebook - Facebook SDK 4.0

Ранее я использовал следующее для очистки и сброса токена доступа Facebook

[FBSession.activeSession closeAndClearTokenInformation];

После обновления до 4.0 это больше не работает. FBSession.activeSession изменен на [FBSDKAccessToken currentAccessToken].

Однако я не могу найти последнюю версию closeAndClearTokenInformation, которая работает с последней версией. Какие-либо предложения?

Ответ 1

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, который настроен для портретного режима. Я не уверен, возможно ли еще это изменить.

Ответ 2

Swift 2+ Простое решение

FBSDKLoginManager().logOut()

Swift 5+ Простое решение

LoginManager().logOut()

Ответ 3

В swift вы можете сделать следующее для полного закрытия сессии:

import FacebookCore
import FacebookLogin

//...

//in your method:

let fbLoginManager = LoginManager()
fbLoginManager.logOut()
AccessToken.current = nil
UserProfile.current = nil