一些Facebook用户的Facebook个人资料链接在iOS应用中使用FBSDKLoginManager作为回应被拒绝

问题描述 投票:-2回答:2

我正在使用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用户帐户。可能是什么原因和解决方案?

ios objective-c facebook facebook-graph-api fbsdkloginkit
2个回答
0
投票

Facebook提供沙盒测试用户,可用于测试目的。

在这里,您可以检查所有关于Facebook测试用户。

https://developers.facebook.com/docs/apps/test-users


0
投票

只有当用户是朋友的朋友或朋友时,facebook才允许查看个人资料。

© www.soinside.com 2019 - 2024. All rights reserved.