![](/img/trans.png)
[英]Invalid Scope:basic_info. Use public_profile,user_friends instead
[英]ios Facebook Login showing “Invalid Scope: basic_info”. use public_profile, user_friends instead
我希望应用程序在所有三种情况下均能正常工作。
我在我的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];
情况一工作正常,但情况二和情况三无效
情况一:(未在设备上安装FB应用,并且仅FB凭据存储在设置中)在这种情况下,当我按下登录按钮时,它会询问我权限,并且可以获取用户的基本信息。
案例II :(已安装FB应用程序,但FB凭据未存储在设置中)在这种情况下,当我按下登录按钮时,它将带我进入已安装的FB进行登录。 我登录,但显示错误“无效范围:basic_info”。 使用public_profile,user_friends代替。
情况三:(未安装FB应用程序且FB凭据未存储在设置中)在这种情况下,当我按登录按钮时,它将带我到ios野生动物园浏览器进行fb登录。 我登录,但显示相同的错误“无效范围:basic_info”。 使用public_profile,user_friends代替。
当我用
fb_loginView.readPermissions = @[@"public_profile", @"email", @"user_friends"];
然后 Case-I和Case-II可以正常工作,但是Case-III显示以下错误。
错误=错误域= com.facebook.sdk代码= 2“操作无法完成。(com.facebook.sdk错误2。)” UserInfo = 0x1cd61ba0 {com.facebook.sdk:ErrorLoginFailedReason = com.facebook.sdk “:SystemLoginCancelled,com.facebook.sdk:ErrorInnerErrorKey =错误域= com.apple.accounts代码= 7” Facebook服务器无法满足此访问请求:代理的应用程序无法在未事先安装的情况下请求发布权限。 UserInfo = 0x1cd622e0 {NSLocalizedDescription = Facebook服务器无法满足此访问请求:在未事先安装的情况下,代理的应用程序无法请求发布权限。},com.facebook.sdk:ErrorSessionKey =,expirationDate :(空),refreshDate :(空),trypedRefreshDate:0001-12-30 00:00:00 +0000,权限:(null)>}
该错误告诉您如何解决。
Facebook API不再接受@"basic_info"
。 您应该使用@"public_profile"
或@"user_friends"
或@[@"public_profile", @"user_friends"]
(取决于您的用例)。
使用@"public_profile"
时看到的错误与此Facebook请求无关。 它与您请求@"publish_actions"
的请求有关,因此消息“代理的应用程序无法在未事先安装的情况下请求发布权限”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.