2015-04-23 16 views
5

Próbuję uzyskać Feed dla osi czasu zalogowanego użytkownika. Mam przycisk logowania, do którego przekazuję uprawnienia do odczytu, w tym user_posts. O dziwo, Facebook nie udziela mi tego pozwolenia i ignoruje je.Facebook SDK 4.x Problem z pozwoleniem iOS

Kod:

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

Na Kliknięcie przycisku logowania, mam następujący ekran uprawnień. Facebook zignorował zgodę na user_posts.

enter image description here

Nawet jeśli próbuję uzyskać to uprawnienie później po zalogowaniu Facebook mówi mi, że już upoważnione app zrobić tak, nawet gdy nie ma ma takiego uprawnienie przyznane! Kod pozwalający uzyskać nowe pozwolenie to:

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

     }]; 
    } 
} 

Od trzech dni łomotam nad tym problemem. Proszę, zasugeruj mi, gdzie mogę się mylić? Dzięki.

Odpowiedz

1

Myślę, że nie pracujemy dla dotacji user_posts jako par Facebook developer documentation for permission musisz przesłać swoją aplikację na Facebooku do sprawdzenia zobacz załącz zrzut ekranu, który wyraźnie powiedział.

enter image description here

Więc trzeba zgłosić swoją facebook app for login review może być następnie można stanie ustawić tę zgodę na loginTime

+0

Oznacza to, że nie będę mógł uzyskać żadnego pozwolenia bez recenzji na Facebooku? – NightFury

+0

Tak. Uprawnienia, które wymagają weryfikacji, są zwykle sprawdzane w ciągu 3 dni roboczych. Niektóre uprawnienia mogą potrwać do 7 dni w celu sprawdzenia i są oznaczone jako takie w pliku referencyjnym. Uprawnienia, które nie wymagają recenzji: uprawnienia profilu publicznego (domyślne), przyjaciele aplikacji, uprawnienia do poczty e-mail. – Tanuj

+0

to nie jest dla żadnego pozwolenia, które jest dla user_post –

0

Jeśli jesteś w trybie rozwoju i nie jest jeszcze gotowy do publikowania aplikacji dla Facebook następnie najlepszym sposobem na zrobienie tego, co chcesz, jest użycie użytkowników testowych. Na pulpicie nawigacyjnym aplikacji Facebook wejdź do funkcji Role i stwórz kilku użytkowników testowych. Zauważ, że jest to oddzielna karta, a nie Testerzy na pierwszej karcie. Podczas tworzenia użytkowników testowych domyślnie można przypisać uprawnienia, które mają zostać przypisane temu użytkownikowi.

Powiązane problemy