繁体   English   中英

ios Facebook登录名,显示“无效范围:basic_info”。 使用public_profile,user_friends代替

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM