无法通过Facebook登录(Parse):错误代码251

时间:2015-03-26 03:55:43

标签: ios facebook parse-platform

我在App Store中有一个使用Parse的应用程序并自动创建匿名用户(我设置[PFUser enableAutomaticUser])。所以现在我在Parse用户表中有数千个用户。

现在我正在尝试实现完整的配置文件,并通过调用以下方式将匿名用户转换为非匿名用户:

[PFFacebookUtils linkUser:currentUser permissions:@[@"public_profile", @"email", @"user_friends"] block:^(BOOL succeeded, NSError *error) {
        if (succeeded) {
            //some logic
        } else {
            NSLog(@"Error: %@", error);
        }
    }];

BTW我也尝试过:

        [PFFacebookUtils logInWithPermissions:@[@"public_profile", @"email", @"user_friends"] block:^(PFUser *user, NSError *error) {
        if (!user) {
            NSLog(@"Uh oh. The user cancelled the Facebook login.");                
        } else if (user.isNew) {
            NSLog(@"User signed up through Facebook!");
        } else {
            NSLog(@"User logged in through Facebook!");
        }
    }];

但在这两种情况下我都会收到错误:251 - 提供的Facebook会话令牌已过期或无效。

我已经尝试过:

  • 退出匿名用户
  • 刷新会话
  • 关闭并重新认证会话

FB app settings

这里没有什么对我有用。有谁知道在这种情况下该怎么做?如何正确将匿名用户转换为非匿名用户?

3 个答案:

答案 0 :(得分:1)

我很确定问题是你的Facebook App配置。

请转到您的Facebook应用设置(高级部分)https://developers.facebook.com/apps/YOUR_FB_APP_ID/settings/advanced/

您应该启用选项"原生或桌面应用?"当您这样做时,您还可以选择其他消息"您的App Secret是否已嵌入?" iOS上的错误251仅在您启用此第二个选项时出现,因为您的应用程序机密未嵌入,因此令牌无效。

请转到您的设置并确保选项"您的App Secret是否已嵌入?"未启用。

我希望它有所帮助。

答案 1 :(得分:0)

验证您的fb开发帐户"已批准的项目" > "登录权限"必须与您在代码中的权限数组中请求的相同。就我而言,我使用的是新的API 2.0。

希望你帮助它。

来自坎昆的问候 Login permissions FB

答案 2 :(得分:0)

对我来说,问题在于我复制App Secret时的点击,点击你的开发者设置中的显示按钮并将其中的字符串复制到Parse。

希望它有所帮助。