Сбой авторизации Facebook на iOS6 при переключении учетной записи FB на устройстве
Я использую Facebook 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}
Может кто-нибудь воспроизвести это или есть идеи, где проблема может лежать?