2015-04-23 18 views
5

Sto cercando di ottenere Feed per la cronologia dell'utente connesso. Ho un pulsante di accesso, a cui sto passando le autorizzazioni di lettura tra cui user_posts. Sorprendentemente, Facebook non mi concede questo permesso e lo ignora.Facebook SDK 4.x Problema di autorizzazione iOS

Codice:

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

Su clic sul pulsante di login, ottengo seguente schermata delle autorizzazioni. Facebook ha ignorato l'autorizzazione user_posts.

enter image description here

Anche se cerco di ottenere questa autorizzazione in seguito dopo il login, Facebook mi dice che ho già autorizzato app per fare in modo, anche quando non c'è nessuna tale autorizzazione rilasciata! Il codice per ottenere il nuovo permesso è:

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

     }]; 
    } 
} 

Ho battuto la testa su questo problema per tre giorni. Per favore suggeriscimi dove posso essere sbagliato? Grazie.

risposta

1

Penso che non funziona per la concessione user_posts come par Facebook developer documentation for permission devi inviare la tua app di Facebook per la revisione vedere allegare screenshot che ha detto chiaramente.

enter image description here

Quindi devi inviare il tuo facebook app for login review potrebbe essere, allora è possibile in grado di impostare questa autorizzazione a loginTime

+0

Quindi questo significa che non potrò ottenere alcun permesso senza la recensione di facebook ?? – NightFury

+0

Sì. Le autorizzazioni che richiedono la revisione vengono generalmente esaminate entro 3 giorni lavorativi. Alcune autorizzazioni possono richiedere fino a 7 giorni per la revisione e sono contrassegnate come tali nel riferimento. Autorizzazioni che non richiedono revisione: autorizzazioni di profilo pubblico (predefinito), amici di app, autorizzazioni di posta elettronica. – Tanuj

+0

che non è per alcun permesso che è per user_post –

0

Se si è in modalità di sviluppo e non ancora pronto a pubblicare l'applicazione per Facebook, allora il modo migliore per fare ciò che vuoi è utilizzare gli utenti di prova. Nella dashboard dell'app Facebook, vai su Ruoli e crea alcuni utenti di test. Si noti che è una scheda separata e non i tester nella prima scheda. Quando crei utenti di test, puoi per impostazione predefinita assegnare quali autorizzazioni dovrebbero essere assegnate a quell'utente.

Problemi correlati