ios - 在 iOS 应用程序中使用 FBSDKLoginManager 拒绝某些 Facebook 用户的 Facebook 个人资料链接
问题描述
我正在使用FBSDKLoginKit登录Facebook。我正在尝试获取电子邮件、姓名、公开资料和用户资料链接。根据获取个人资料链接的最新政策,开发者在登录时需要征求许可,并应向 Facebook 提供如何使用该信息以供审核。我做了所有这些过程。
使用FBSDKLoginManager使用我的开发人员 Facebook 帐户登录时,我能够获取所有这些必需的参数。但是当我尝试使用另一个用户帐户登录时,配置文件链接被拒绝响应。链接是空的。
我创建了如下方法来登录并获取这些参数。
- (void)loginFaceBook
{
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
login.loginBehavior = FBSDKLoginBehaviorSystemAccount;
// need permission
[login logInWithReadPermissions:@[@"public_profile", @"email", @"user_link"]
fromViewController:self
handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
{
if (error)
{
NSLog(@"Process error");
}
else if (result.isCancelled)
{
NSLog(@"Cancelled");
}
else
{
NSLog(@"Logged in");
if ([result.grantedPermissions containsObject:@"email"])
{
NSDictionary *params = @{@"fields" : @"id,name,link,email"};
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:params]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id responseData, NSError *error)
{
NSLog(@"%@",responseData);
if (!error)
{
NSString *fbEmail = [AQCommon validateTextBeforePack:[responseData objectForKey:kEmail]];
NSString *fblink = [AQCommon validateTextBeforePack:[responseData objectForKey:@"link"]];
NSString *fbname = [AQCommon validateTextBeforePack:[responseData objectForKey:@"name"]];
}
else
{
NSLog(@"Facebook login failed. Please try later."); }
}
}];
}
else
{
NSLog(@"Facebook login failed. Please try later."); }
}
}];
}
我使用我的 Facebook 开发人员帐户(我在其中创建了我的应用程序)获得了所有必需的参数登录,但其他一些帐户的user_link被拒绝。可能是什么问题呢?是否与 Facebook 隐私政策有关?或者,用户需要更改其个人资料中的某些设置?
除了上述问题之外,我从开发者帐户中获得的个人资料链接是从除某些帐户之外的任何 Facebook 帐户打开的。该错误表明链接已过期或未授予权限。该问题非常特定于 Facebook 用户帐户。可能的原因和解决方案是什么?
解决方案
Facebook 提供沙盒测试用户,可用于测试目的。
在这里您可以查看所有关于 Facebook 测试用户的信息。
推荐阅读
- android - 如何使用 Cordova 在 Android 上实现打印?
- python - 如何在不使用 raw_input 或 Ctrl-C 的情况下中断无限循环?蟒蛇 2.7
- ruby-on-rails - 使用 factorygirls 模型 embeds_many 和 embedded_in 关系
- http - 在 Go 中解码 http2 帧头/数据
- ssl - 如何使用 SAP Fiori Client 访问 SAP Fiori Launchpad(内部 URL)
- javascript - 创建了一个不起作用的删除功能
- ios - 如何确定当前的 iPhone/设备型号?在编写单元测试用例时
- python - 使用python 3将Json嵌套到csv
- java - SAX Parser:如何仅从“Item”标签中读取?
- sql - 从另一个表中获取数据,如果存在则插入,否则更新