1

Facebook SDK 3.5 を使用していますが、ログイン中に次のエラーが発生します。

Facebookのログインに使用しているコードは次のとおりです

- (BOOL)openSession:(BOOL)allowLogin
  {  
    NSArray *permissions = [NSArray arrayWithObjects:@"user_photos",@"email",@"user_location",@"offline_access", nil];
    return [FBSession openActiveSessionWithReadPermissions:permissions
          allowLoginUI:allowLogin
          completionHandler:^(FBSession *session1,
                              FBSessionState state,
                              NSError *error) {[
                                  self sessionStateChanged:session1 state:state error:error];
                                     }];  
  }

 - (void)sessionStateChanged:(FBSession *)session  state:(FBSessionState)state  error:(NSError *)error
   {        
     switch (state) {            
       case FBSessionStateOpen:
        {

        }
       break;

       case FBSessionStateClosed:            
       case FBSessionStateClosedLoginFailed:
        {
          [[FBSession activeSession] closeAndClearTokenInformation];  
        }
       break;       

       default:
       break;            
      }

    if (error) {
       UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error"   message:error.localizedDescription delegate:nil  cancelButtonTitle:@"OK"  otherButtonTitles:nil];
       [alertView show];
       [alertView release];
       }
   }

エラー

Domain=com.facebook.sdk 
Code=2 "The operation couldn’t be completed. (com.facebook.sdk error 2.)" 
UserInfo=0x1e0a3080 
  {
    com.facebook.sdk:ErrorLoginFailedReason=com.facebook.sdk:SystemLoginCancelled, 
    com.facebook.sdk:ErrorInnerErrorKey=Error 
    Domain=com.apple.accounts 
    Code=7 "The operation couldn’t be completed. (com.apple.accounts error 7.)",   
    com.facebook.sdk:ErrorSessionKey=<FBSession: 0x1d5d69d0,
    state: FBSessionStateClosedLoginFailed,
    loginHandler: 0x0, 
    appID: 205008289575045, 
    urlSchemeSuffix: , 
    tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0x1e033950>,
    expirationDate: (null), 
    refreshDate: (null),
    attemptedRefreshDate: 0001-12-30 00:00:00 +0000, permissions:(null)>
   }

どんな助けでも大歓迎です。

4

5 に答える 5

4

答えが出ました。

これが問題を引き起こしていました

 return [FBSession openActiveSessionWithReadPermissions:permissions
                                          allowLoginUI:allowLogin
                                     completionHandler:^(FBSession *session1,
                                                         FBSessionState state,
                                                         NSError *error) {

                                         [self sessionStateChanged:session1 state:state error:error];
                                     }]; 

上記のコードをこれに置き換えたとき

[FBSession openActiveSessionWithPermissions:permissions allowLoginUI:allowLogin completionHandler:^(FBSession *session1, FBSessionState state, NSError *error){

    [self sessionStateChanged:session1 state:state error:error];

}];
return YES;

すべてがうまくいき始めました。

于 2013-06-17T09:37:43.790 に答える
1

ログインしようとしているユーザーは、Facebook 開発者として登録されていますか? アプリがサンドボックス モードの場合、開発者のみがログインできます。

また、plist で FB アプリの情報を提供したことを確認してください。

于 2013-06-14T08:08:48.750 に答える
1

もう 1 つの解決策は、デバイスで [設定] > [Facebook] に移動し、アプリが Facebook アカウントへのアクセスを「許可」していることを確認することです。そうしないと、このエラーが発生します。アプリが Facebook アカウントへのアクセスを許可されていないことがわかるまで、これについて 1 時間戸惑いました...

于 2014-02-21T23:37:14.623 に答える