Facebook SDK 4.x权限问题iOS

Nig*_*ury 5 facebook facebook-graph-api 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];
}
Run Code Online (Sandbox Code Playgroud)

在单击登录按钮上,我获得以下权限屏幕.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];

        }];
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Nit*_*hel 1

user_posts我认为,如果没有像Facebook 开发者文档那样获得许可,您必须提交您的 Facebook 应用程序以供审核,请参阅我附上的屏幕截图,其中清楚地表明了这一点。

在此输入图像描述

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