该操作无法完成。 (com.facebook.sdk错误2.)ios6

时间:2013-04-05 10:30:33

标签: ios facebook ios6 facebook-login

您好我正在使用ios6进行Facebook登录,并且我将此错误视为原生弹出窗口

无法完成操作。 (com.facebook.sdk错误2.)

这是我使用过的场景。 (我在simularor上运行

我已通过设置登录到脸书应用程序,我尝试登录我的应用程序并且工作正常。

然后我从设置中退出Facebook并再次使用不同的用户登录。然后我尝试登录该应用程序。我收到了这个错误。

我尝试使用命令

退出应用程序

[FBSession.activeSession closeAndClearTokenInformation];

但没用。

Facebook应用中的捆绑标识符与我的ios应用中的相同。

这是我用来登录的代码

NSArray *permissions = [[NSArray alloc] initWithObjects:@"email", nil];
    [FBSession openActiveSessionWithReadPermissions:permissions
                                       allowLoginUI:YES
                                  completionHandler:
     ^(FBSession *session,
       FBSessionState state, NSError *error) {
         [self sessionStateChanged:session state:state error:error];
     }];

感谢任何帮助。

这是我得到的错误

  

Domain = com.facebook.sdk Code = 2“无法完成操作。   (com.facebook.sdk错误2.)“UserInfo = 0x9535330   {com.facebook.sdk:ErrorLoginFailedReason = com.facebook.sdk:SystemLoginDisallowedWithoutError,   com.facebook.sdk:ErrorSessionKey =,   expirationDate:(null),refreshDate:(null),attemptsRefreshDate:   0001-12-30 00:00:00 +0000,权限:(null)>}

注意 我在不同的时候得到了同样的错误。那时我的代码中有一个错误

而不是作为

的许可

NSArray *permissions = [[NSArray alloc] initWithObjects:@"email",@"birthday", nil];

我错误地把它作为

NSArray *permissions = [[NSArray alloc] initWithObjects:@"email,birthday", nil];

即使在更正代码后,我也遇到了同样的错误。我必须从ios设置屏幕注销并登录facebook。一旦我这样做,正确的代码从未引起任何问题。请注意,问题仅发生在先前执行错误代码的设备上。请注意确定导致问题的原因, 希望这些信息有助于某人

7 个答案:

答案 0 :(得分:23)

这对我有用:

  • 转到iPhone的设置应用。
  • 打开您的Facebook设置
  • 向下滚动到您的应用,确保您的应用允许Facebook 相互作用。

这可能发生在任何设备上,因此在您的应用中,您必须确保正确处理此错误。 我估计你向用户提供反馈为何登录Facebook失败并要求用户在他们的设备上检查他们的Facebook设置。

 - (void)facebookSessionStateChanged:(FBSession *)session state:(FBSessionState)state error:(NSError *)error
{
    switch (state) {
        case FBSessionStateOpen:
            // handle successful login here
        case FBSessionStateClosed:
        case FBSessionStateClosedLoginFailed:
            [FBSession.activeSession closeAndClearTokenInformation];

            if (error) {
                // handle error here, for example by showing an alert to the user
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Could not login with Facebook"
                                                                message:@"Facebook login failed. Please check your Facebook settings on your phone."
                                                               delegate:nil
                                                      cancelButtonTitle:@"OK"
                                                  otherButtonTitles:nil];
                [alert show];
            }
            break;
        default:
            break;
    }

答案 1 :(得分:9)

检查项目的Bundle标识符,并为您的应用程序提供Bundle标识符,该标识符在developer.facebook.com上创建,它们是否相同。

答案 2 :(得分:8)

此错误的另一个可能原因:当Facebook用户未在应用程序的管理员,开发人员或测试人员中列出时,尝试以沙盒模式获取Facebook应用程序的权限。

答案 3 :(得分:3)

我通过在登录时传递nil权限来解决我的问题。

[FBSession openActiveSessionWithReadPermissions:nil
                                       allowLoginUI:YES
                                  completionHandler:

答案 4 :(得分:0)

我有类似的问题。当我从设置中切换fb用户时出现错误。 Facebook authorization fails on iOS6 when switching FB account on device这解决了我的问题

答案 5 :(得分:0)

我遇到了同样的问题,花了一整天的时间才弄明白这个问题。 Facebook SDK的此错误消息非常模糊。由于在MyApplication中覆盖了openURL:方法,我遇到了这个问题。我删除了覆盖的方法,Facebook登录工作正常。

答案 6 :(得分:0)

对我来说问题是无效的权限 - 我要求"生日"而不是" user_birthday"。遗憾的是,错误消息至少是最低限度的描述性 - 只是说"权限无效"而不是ERROR CODE 2会为我节省这么多时间。