FBSDKLoginManager 有效,PFFacebookUtils logInInBackgroundWithReadPermissions 无效

Posted

技术标签:

【中文标题】FBSDKLoginManager 有效,PFFacebookUtils logInInBackgroundWithReadPermissions 无效【英文标题】:FBSDKLoginManager works, PFFacebookUtils logInInBackgroundWithReadPermissions not 【发布时间】:2016-05-22 19:28:58 【问题描述】:

我使用解析服务器通过 Facebook 实现了登录。

如果我使用它,我会正确获取用户信息:

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login
 logInWithReadPermissions: @[@"public_profile",@"email"]
 fromViewController:self
 handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) 
     if (error) 
         NSLog(@"Process error");
      else if (result.isCancelled) 
         NSLog(@"Cancelled");
      else 
         NSLog(@"Logged in %@",result);
         [self fetchUserInfo];
     
 ];

但我想使用 PFFacebookUtils 在 Parse 中轻松创建用户:

[PFFacebookUtils logInInBackgroundWithReadPermissions:@[@"public_profile",@"email"] block:^(PFUser *user, NSError *error) 
    if (!user) 
        //...
     else if (user.isNew) 
        //...
     else 
        //...
    
];

Facebook modal 出现授权请求,但是当我按确定时,我收到此错误:

[错误]:此用户的 Facebook 身份验证无效。 (代码:101,版本:1.13.0)。

在 Facebook 上的应用程序设置里面,应用程序在那里。

【问题讨论】:

【参考方案1】:

当用户更改 Facebook 密码或在 Facebook 的应用程序设置中删除您的应用程序时,Parse 应用程序会发生这种情况。

User.authData 应该用PFFacebookUtils.logInInBackgroundWithReadPermissions: 更新,但它似乎没有更新。我认为这是 Parse Server 的问题。

解决方法:发生该错误时,您可以使用 PFFacebookUtils.linkUserInBackground:withReadPermissions: 更新 User.authData。

【讨论】:

以上是关于FBSDKLoginManager 有效,PFFacebookUtils logInInBackgroundWithReadPermissions 无效的主要内容,如果未能解决你的问题,请参考以下文章

带有电子邮件地址的 FBSDKLoginManager 令牌

FBSDK FBSDKLoginManager 和 SFSafariViewController 不会关闭

FBSDKLoginManager 未在本机 ios 应用程序中打开登录对话框

[FBSDKLoginManager logInWithReadPermissions:fromViewController:handler:]:无法识别的选择器发送到实例

FBSDKLoginManager logInWithReadPermissions:fromViewController:处理程序:应用程序首次运行时未调用完成

如何使用 iOS Facebook SDK 2.4 保持登录状态