2012-11-01 19 views
5

Próbuję odzyskać dane urodzinowe znajomych z Facebooka, ale zwracana jest wartość zerowa. Używam tego kodu:iOS Facebook SDK 3.1 Odzyskanie daty urodzin przyjaciela null

FBRequest* friendsRequest = [FBRequest requestForMyFriends]; 
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection, 
            NSDictionary* result, 
            NSError *error) { 
    NSArray* friends = [result objectForKey:@"data"]; 
    NSLog(@"Found: %i friends", friends.count); 
    for (NSDictionary<FBGraphUser>* friend in friends) { 
     NSLog(@"I have a friend named %@ - birthday %@", friend.name, friend.birthday); 
    } 
}]; 

nazwa znajomego jest ok, ale przyjaciel urodziny lub wszystkie dane, które nie jest jednym z danymi Podstawy przyjaciół wraca zerowa. Uwaga Jestem już dodane uprawnienia user_birthday i friends_birthday w facebook.com strony i aplikacji w metodzie openSession (login):

- (void)openSession 
{ 

    NSArray *permissions = [[NSArray alloc] initWithObjects: 
          @"user_birthday", 
          @"friends_birthday", 
          nil]; 


    [FBSession openActiveSessionWithReadPermissions:permissions 
             allowLoginUI:YES 
            completionHandler: 
    ^(FBSession *session, 
     FBSessionState state, NSError *error) { 
     [self sessionStateChanged:session state:state error:error]; 
    }]; 
} 

Wymagające pomocy tutaj, ja już próbowałem wszystkiego.

Odpowiedz

35

Mam ten sam problem i rozwiązuję ten problem.

  • Przede wszystkim upewnij się, że masz odpowiednie uprawnienia.

    NSArray *permissions = @[@"user_birthday", @"friends_hometown", 
             @"friends_birthday", @"friends_location"]; 
    [FBSession openActiveSessionWithReadPermissions:permissions allowLoginUI:YES completionHandler: ..... 
    
  • Następnie NIE UŻYWAJ requestForMyFriends. Staram się na kilka sposobów (zmiana FBRequest i tego rodzaju rzeczy

  • Sprawdź uprawnienia i mieć pewność, że to uprawnienia trzeba.

    NSLog(@"permissions::%@",FBSession.activeSession.permissions); 
    
  • Teraz wygenerować FBRequest ten sposób.

    FBRequest *friendRequest = [FBRequest requestForGraphPath:@"me/friends?fields=name,picture,birthday,location"]; 
    [ friendRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 
        NSArray *data = [result objectForKey:@"data"]; 
        for (FBGraphObject<FBGraphUser> *friend in data) { 
         NSLog(@"%@:%@", [friend name],[friend birthday]); 
    }}]; 
    

I wreszcie dostać te dane. mam nadzieję, że to pomaga

+0

@ jgorozco- dzięki tonem. Rozwiązałeś mój bardzo ogromny problem. – stack

+0

tutaj jest problem podczas napisać następujący kod [openActiveSessionWithReadPermissions FBSession: Uprawnienia allowLoginUI: Tak completionHandler: ..... Problem polega na tym, że „loginViewFetchedUserInfo” metoda stale nazywa .. więc usunąć ten kod, a aplikacja działa poprawnie – g212gs

+0

Teraz używam iOS Facebook SDK 3.2 i nie mogę uzyskać listy przyjaciół. Mogę zaprosić przyjaciół, jak również mogę zdobyć przyjaciół, z których korzysta ta sama aplikacja, ale nie mogę zebrać wszystkich znajomych. Czy są jakieś zmiany ze strony na Facebooku? – UserDev

Powiązane problemy