繁体   English   中英

Facebook SDK 4.x权限问题iOS

[英]Facebook SDK 4.x Permission issue iOS

我正在尝试为登录用户的时间线获取Feed 我有一个登录按钮,我通过读取权限包括user_posts 令人惊讶的是,Facebook没有授予我这个许可,而忽略了它。

码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    self.loginButton.readPermissions = @[@"public_profile", @"email", @"user_friends", @"user_posts"];

    self.loginButton.delegate = self;

    if([FBSDKAccessToken currentAccessToken])
    {
        NSLog(@"Have access token");
        NSLog(@"permissions .... %@",[FBSDKAccessToken currentAccessToken].permissions);
        [self retrieveFeed];
    }

}

#pragma mark - Login Delegate

-(void) loginButton:(FBSDKLoginButton *)loginButton didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result error:(NSError *)error
{
    NSLog(@"Login Successfully!!");
    NSLog(@"permissions .... %@",[FBSDKAccessToken currentAccessToken].permissions);

    [self retrieveFeed];

}

-(void) loginButtonDidLogOut:(FBSDKLoginButton *)loginButton
{

}

#pragma mark - Receive FB Feed

-(void) retrieveFeed
{       
    FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"/me/feed" parameters:nil];

    FBSDKGraphRequestConnection *connection = [[FBSDKGraphRequestConnection alloc] init];
    [connection addRequest:request completionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {

        NSLog(@"%@",result);

        if(error)
            NSLog(@"Some error FEED;;;;;; %@",error.localizedDescription);
    }];
    [connection start];
}

在单击登录按钮上,我获得以下权限屏幕。 Facebook忽略了user_posts权限。

在此输入图像描述

即使我在登录后尝试获得此许可,Facebook也告诉我, 我已经授权应用程序这样做 ,即使没有授予此类许可! 获得新权限的代码是:

-(void) checkForFeedPermission
{
    if ([[FBSDKAccessToken currentAccessToken] hasGranted:@"user_posts"]) {

        NSLog(@"already granted feed access");
          [self retrieveFeed];

    } else {
        FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
        [loginManager logInWithReadPermissions:@[@"user_posts"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {

            NSLog(@"requesting feed access");
             [self retrieveFeed];

        }];
    }
}

我已经在这个问题上敲了三天。 请建议我哪里可以出错? 谢谢。

我认为不适用于授予user_posts作为Facebook开发者文档的权限,你必须提交你的Facebook应用程序进行审查,请参阅我附上的截图,清楚地说。

在此输入图像描述

因此,您必须提交您的Facebook应用程序进行登录审核,然后您才能在loginTime设置此权限

如果您处于开发模式但尚未准备好发布应用以进行Facebook审核,那么最好的方法就是使用测试用户。 在您的Facebook应用程序仪表板中,转到角色并创建一些测试用户。 请注意,它是一个单独的选项卡,而不是第一个选项卡中的Testers。 创建测试用户时,您可以默认分配应为该用户分配的权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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