Facebook SDK 3.1.1 を使用して、iOS アプリケーションに FB Connect を実装しています。これは、新しい FB 統合 (iOS でログイン) または Web ビューを介した通常の認証へのフォールバック (両方のケースでネイティブ Facebook アプリケーションをインストールしていない) のいずれかを使用する単純なケースでは正常に機能します。この問題は、iOS レベルでアカウントを切り替えると発生します。ログアウトして、別の FB ユーザー アカウントでログインします。
ログイン/承認するには、次を実行します。
[FBSession openActiveSessionWithReadPermissions:nil allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
[self sessionStateChanged:session state:state error:error];
}];
closeAndClearTokenInformation
その状態に達したときに実行しても、毎回 FBSessionStateClosedLoginFailed を取得した場合:
- (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}
誰でもこれを再現できますか、または問題がどこにあるのか考えられますか?