ios Facebook 登录显示“无效范围:basic_info”。改用 public_profile, user_friends

Posted

技术标签:

【中文标题】ios Facebook 登录显示“无效范围:basic_info”。改用 public_profile, user_friends【英文标题】:ios Facebook Login showing "Invalid Scope: basic_info". use public_profile, user_friends instead 【发布时间】:2014-11-05 17:01:21 【问题描述】:

我希望应用应该在所有三种情况下都能正常工作。 我在 viewdidload 方法中使用了以下代码并实现了委托方法。

FBLoginView *fb_loginView = [[FBLoginView alloc] init];
fb_loginView.readPermissions = @[@"basic_info", @"email", @"user_friends"];
fb_loginView.delegate = self;
fb_loginView.frame = CGRectMake(10, 250, 300, 100);
[self.view addSubview:fb_loginView];

Case-I 工作正常但是 案例二和案例三不工作

案例-I:(设备上未安装 FB 应用程序,设置中仅存储 FB 凭据) 在这种情况下,当我按下登录按钮时,它会询问我的权限,我可以获取用户的基本信息。

案例-II:(已安装 FB 应用但 FB 凭据未存储在设置中) 在这种情况下,当我按下登录按钮时,它会将我带到为登录而安装的 FB。我登录了,但显示错误 “无效范围:basic_info”。请改用 public_profile、user_friends。

案例三:(未安装 FB 应用且未将 FB 凭据存储在设置中) 在这种情况下,当我按下登录按钮时,它会将我带到 ios Safari 浏览器进行 fb 登录。我登录了,但显示同样的错误 “无效范围:basic_info”。请改用 public_profile、user_friends。

我用的时候

fb_loginView.readPermissions = @[@"public_profile", @"email", @"user_friends"]; 

那么 Case-I & Case-II 工作正常,但 Case-III 显示以下错误。

Error = Error Domain=com.facebook.sdk Code=2 "操作不能 完成。 (com.facebook.sdk 错误 2。)“UserInfo=0x1cd61ba0 com.facebook.sdk:ErrorLoginFailedReason=com.facebook.sdk:SystemLoginCancelled, com.facebook.sdk:ErrorInnerErrorKey=错误域=com.apple.accounts Code=7 "Facebook 服务器无法完成此访问请求: 被代理的应用程序无法请求发布权限 以前安装过。” UserInfo=0x1cd622e0 NSLocalizedDescription=The Facebook 服务器无法完成此访问请求:代理应用 未经安装无法请求发布权限 以前。, com.facebook.sdk:ErrorSessionKey=, 过期日期:(空),刷新日期:(空),尝试刷新日期: 0001-12-30 00:00:00 +0000,权限:(null)>

【问题讨论】:

【参考方案1】:

错误告诉你如何修复它。

@"basic_info" 不再被 Facebook API 接受。您应该改用@"public_profile"@"user_friends"@[@"public_profile", @"user_friends"](取决于您的用例)。

您在使用@"public_profile" 时看到的错误与此 Facebook 请求无关。它与您请求 @"publish_actions" 的请求有关,因此消息“代理的应用程序无法请求 publish 权限,而无需事先安装。”

【讨论】:

以上是关于ios Facebook 登录显示“无效范围:basic_info”。改用 public_profile, user_friends的主要内容,如果未能解决你的问题,请参考以下文章

如何知道用户已经在 iOS 应用上完成 Facebook 登录

iOS Facebook SDK 登录页面显示在受保护页面之前

使用新的 facebook-ios-sdk 在 iphone 上未显示 Facebook Connect 登录对话框

iOS Facebook 登录失败

Facebook IOS SDK登录按钮强制小文本

iOS Facebook SDK 登录视图有时会显示桌面 Web 而不是移动 Web