7

Estoy trabajando en la integración de Facebook en mi aplicación iOS y me pregunto cómo cargar amigos de Facebook en una vista de tabla para que el usuario pueda seleccionar amigos para invitar al juego, de forma similar a como se hace en Palabras con amigos.Cargar amigos de Facebook en UITableView

Sé que [facebook requestWithGraphPath:@"me/friends" andDelegate:self]; solicita amigos de Facebook, pero no puedo determinar qué hacer desde allí. De alguna manera, quiero obtener los id de amigos para poder enviarles un mensaje. Cualquier información o consejo sería muy apreciado. Gracias de antemano

+0

Problema resuelto después de más búsquedas. Para cualquiera que busque, aquí hay una respuesta http://stackoverflow.com/questions/6491838/retrieve-facebook-friends-list –

Respuesta

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

y luego Mostrar NSArray en TableView

3

Puede probar esto si usted desea conseguir el amigo del usuario con imágenes de perfil a la vez. Primero:

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

Entonces, cuando llegue la respuesta, se tramita:

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

} 

Básicamente, el resultSet2 es una matriz de entradas que contienen cada uno un amigo, con estas teclas en los diccionarios para cada amigo : - uid - nombre - pic_small

Por lo tanto, usted tiene todo lo que necesita. Espero que ayude!

Cuestiones relacionadas