Я использую die SDK 3.1.1 для реализации FB Connect в моем приложении iOS. Это прекрасно работает в простом случае с новой интеграцией FB (входит в систему на iOS) или возвращается к обычной авторизации через веб-представление (у меня нет встроенного приложения Facebook, установленного в обоих случаях). Проблема возникает при переключении учетной записи на уровне iOS. Выход из системы и вход в систему с другой учетной записью пользователя FB.
Чтобы выполнить вход/авторизацию, выполните следующие действия:
[FBSession openActiveSessionWithReadPermissions:nil allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
[self sessionStateChanged:session state:state error:error];
}];
Если затем получить FBSessionStateClosedLoginFailed каждый раз, даже если я выполняю closeAndClearTokenInformation
, когда это состояние достигнуто:
- (void)sessionStateChanged:(FBSession *)session
state:(FBSessionState) state
error:(NSError *)error
{
NSLog(@"Session State Changed: %u", [[FBSession activeSession] state]);
switch (state) {
case FBSessionStateOpen:
break;
case FBSessionStateClosed:
case FBSessionStateClosedLoginFailed:
NSLog(@"FBSessionStateClosedLoginFailed ERROR: %@", [error description]);
[[FBSession activeSession] closeAndClearTokenInformation];
break;
default:
break;
}
Тем не менее, я получаю одно и то же состояние при каждой попытке. В моем журнале указано следующее:
FBSDKLog: FBSession **INVALID** transition from FBSessionStateCreated to FBSessionStateClosed
FBSDKLog: FBSession transition from FBSessionStateCreated to FBSessionStateCreatedOpening
FBSDKLog: FBSession transition from FBSessionStateCreatedOpening to FBSessionStateClosedLoginFailed Session State Changed: 257
FBSessionStateClosedLoginFailed TOKEN: (null)
FBSessionStateClosedLoginFailed ERROR: Error Domain=com.facebook.sdk Code=2 "The operation couldn’t be completed. (com.facebook.sdk error 2.)" UserInfo=0xb24cc20 {com.facebook.sdk:ErrorLoginFailedReason=com.facebook.sdk:ErrorLoginFailedReason}
Может ли кто-нибудь воспроизвести это или есть идея, где может возникнуть проблема?