7

Pracuję nad integracją Facebooka z moją aplikacją na iOS i zastanawiam się, jak załadować znajomych z Facebooka do widoku tabeli, aby użytkownik mógł wybierać przyjaciół, którzy zaprosili do gry, podobnie jak to się robi Słowa z przyjaciółmi.Załadujcie znajomych z Facebooka na UITableView

Wiem, że [facebook requestWithGraphPath:@"me/friends" andDelegate:self]; prosi znajomych z Facebooka, ale nie mogę ustalić, co robić dalej. W jakiś sposób chcę uzyskać identyfikatory znajomych, aby móc wysłać im wiadomość. Wszelkie informacje lub porady będą mile widziane. góry dzięki

+0

Problem rozwiązany po kolejnych poszukiwaniach. Dla każdego, kto szuka, tutaj jest odpowiedź http://stackoverflow.com/questions/6491838/retrieve-facebook-friends-list –

Odpowiedz

4
- (void)getFriendsResponse { 
    FbGraphResponse *fb_graph_response = [fbGraph doGraphGet:@"me/friends" withGetVars:nil];// me/feed 
//parse our json 
    SBJSON *parser = [[SBJSON alloc] init]; 
    NSDictionary * facebook_response = [parser objectWithString:fb_graph_response.htmlResponse error:nil]; 
    //init array 
     NSMutableArray * feed = (NSMutableArray *) [facebook_response objectForKey:@"data"]; 
     NSMutableArray *recentFriends = [[NSMutableArray alloc] init]; 

     //adding values to array 
     for (NSDictionary *d in feed) { 

      NSLog(@"see Dicitonary :%@",d); 
      facebook = [[Facebook alloc]initWithFacebookDictionary:d ]; 
      [recentFriends addObject:facebook]; 
      NSLog(@"Postsss :->>>%@",[facebook sender]); 

      [facebook release]; 
     } 

     friends = recentFriends; 

     [self.tableView reloadData]; 
    } 

a następnie pokazać NSArray w Tableview

3

Wypróbuj tę opcję, jeśli chcesz dostać znajomym użytkownika ze zdjęć profilowych na raz. Po pierwsze:

- (void) requestFriends:(NSNumber *) fbUserId 
{ 
    NSLog(@"requesting friends"); 

    NSString* fql1 = [NSString stringWithFormat: 
         @"select uid2 from friend where uid1 = %@", fbUserId ]; 
    NSString* fql2 = [NSString stringWithFormat: 
         @"select uid, name, pic_small from user where uid in (select uid2 from #queryID) order by name"]; 
    NSString* fql = [NSString stringWithFormat: 
        @"{\"queryID\":\"%@\",\"queryUser\":\"%@\"}",fql1,fql2]; 

    NSLog(fql); 

    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObject:fql forKey:@"queries"]; 

    [_facebook requestWithMethodName:@"fql.multiquery" andParams:params andHttpMethod:@"GET" andDelegate:self]; 
} 

wtedy, gdy pojawi się odpowiedź, aby go przetworzyć:

-(void) processFriends:(id) result 
{ 
    //NSLog(@"processFriends %@", result); 
    NSArray *queryResults = (NSArray*) result; 
    NSMutableDictionary *firstQuery = [queryResults objectAtIndex:0]; 
    NSMutableDictionary *secondQuery = [queryResults objectAtIndex:1]; 

    NSArray *resultSet1 = [firstQuery objectForKey:@"fql_result_set"]; 
    NSString *resultName1 = [firstQuery objectForKey:@"name"]; 

    NSArray *resultSet2 = [secondQuery objectForKey:@"fql_result_set"]; 
    NSString *resultName2 = [secondQuery objectForKey:@"name"]; 

    NSLog(@"%@\n\%@", resultName2, resultSet2); 

} 

Zasadniczo ResultSet2 jest tablicą wpisów, które zawierają po znajomego, z tych kluczy w słownikach dla każdego znajomego : - uid - nazwa - pic_small

Dlatego masz wszystko, czego potrzebujesz. Mam nadzieję, że to pomoże!