2015-04-23 25 views
5

Kullanıcı zaman tüneli için Besleme almayı deniyorum. user_posts dahil olmak üzere okuma izinlerini aktardığım bir giriş düğmem var. Şaşırtıcı bir şekilde, Facebook bana bu izni vermez ve göz ardı eder.Facebook SDK 4.x İzin sorunu iOS

Kodu:

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

giriş düğmesi tıklandığında, ben izinler ekranı aşağıdaki almak. Facebook user_posts iznini yok saydı.

Ben girişten sonra daha sonra bu izni elde etmeye çalışmak bile enter image description here

, Facebook böyle izin verildi olmasa bile zaten, bu yüzden yapmaya uygulamayı yetki vermiş söylüyor! Yeni izin almanın kodu:

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

     }]; 
    } 
} 

Bu konuda başımı üç gün boyunca becermeye başladım. Lütfen bana nerede yanlış olabileceğimi öner? Teşekkürler.

cevap

1

user_posts hibe için Facebook developer documentation for permission no'lu başvuruda bulunmamanız gerektiğini düşünüyorum, Facebook uygulamanızı incelemeye göndermeniz gerekmektedir.

enter image description here

Yani göndermek zorunda senin facebook app for login review sonra olabileceğini yapabilirsiniz Henüz sonra facebook incelenmek üzere uygulamasını yayınlamak için hazır geliştirme konumunda olduğunu ve Değilse loginTime

+0

Yani, facebook incelemesi olmadan herhangi bir izin alamayacağım anlamına gelir ?? – NightFury

+0

Evet. İncelenmesi gereken izinler genellikle 3 iş günü içinde incelenir. Bazı izinlerin incelenmesi 7 gün kadar sürebilir ve referansta bu şekilde işaretlenir. Gözden Geçirmeyi Gerektirmeyen İzinler: Genel profil (varsayılan) izinleri, Uygulama arkadaşları, E-posta izinleri. – Tanuj

+0

, user_post –

0

Bu izni ayarlamak mümkün İstediğinizi yapmanın en iyi yolu Test Kullanıcılarını kullanmaktır. Facebook uygulama kontrol panelinizde Rol'e gidin ve bazı test kullanıcıları oluşturun. İlk sekmedeki ayrı bir sekme olduğunu ve Testcilerin olmadığını unutmayın. Test kullanıcıları oluşturduğunuzda, varsayılan olarak o kullanıcıya hangi izinlerin atanması gerektiğini atayabilirsiniz.

İlgili konular