2015-04-23 19 views
5

Tôi đang cố gắng để có được Nguồn cấp dữ liệu cho dòng thời gian của người dùng đã đăng nhập. Tôi có một nút đăng nhập, mà tôi đang chuyển quyền đọc bao gồm user_posts. Thật ngạc nhiên, Facebook không cấp cho tôi quyền này và bỏ qua nó.SDK Facebook 4.x Vấn đề về quyền iOS

Code:

- (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]; 
} 

khi nhấp vào nút đăng nhập, tôi nhận được sau phép màn hình. Facebook đã bỏ qua quyền user_posts.

enter image description here

Thậm chí nếu tôi cố gắng để có được sự cho phép này sau đó sau khi đăng nhập, Facebook nói với tôi rằng Tôi đã ủy quyền ứng dụng để làm như vậy, ngay cả khi có không phép như cấp! Mã để nhận được giấy phép mới là:

-(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]; 

     }]; 
    } 
} 

Tôi đã đập đầu vào vấn đề này trong ba ngày. Làm ơn cho tôi biết tôi có thể sai ở đâu? Cảm ơn.

Trả lời

1

Tôi nghĩ rằng không làm việc cho cấp user_posts như mệnh Facebook developer documentation for permission bạn phải gửi ứng dụng Facebook của bạn để xem xét xem tôi đính kèm ảnh chụp màn hình mà nói rõ ràng.

enter image description here

Vì vậy, bạn phải nộp của bạn facebook app for login review có thể sau đó bạn có thể có khả năng thiết lập sự cho phép này tại loginTime

+0

Vì vậy, điều đó có nghĩa là tôi sẽ không thể nhận được bất kỳ sự cho phép nào nếu không có đánh giá trên facebook ?? – NightFury

+0

Có. Các quyền yêu cầu đánh giá thường được xem xét trong vòng 3 ngày làm việc. Một số quyền có thể mất tối đa 7 ngày để xem xét và được đánh dấu như vậy trong tham chiếu. Quyền đó không yêu cầu đánh giá: Hồ sơ công khai (mặc định) quyền, bạn bè ứng dụng, quyền email. – Tanuj

+0

không dành cho bất kỳ sự cho phép nào đối với user_post –

0

Nếu bạn đang ở trong chế độ phát triển và chưa sẵn sàng để công bố các ứng dụng để xem xét facebook sau đó cách tốt nhất để làm những gì bạn muốn là sử dụng Người dùng thử nghiệm. Trong bảng điều khiển ứng dụng facebook của bạn, hãy vào Vai trò và tạo một số người dùng thử nghiệm. Lưu ý rằng một tab riêng và không phải là Người kiểm tra trong tab đầu tiên. Khi bạn tạo người dùng thử, bạn có thể theo mặc định chỉ định những quyền nào sẽ được chỉ định cho người dùng đó.

Các vấn đề liên quan