Загрузите друзей из Facebook в UITableView
Я работаю над интеграцией Facebook в свое приложение для iOS и задаюсь вопросом, как загрузить друзей Facebook в табличное представление, чтобы пользователь мог выбирать друзей для приглашения в игру, подобно тому, как это делается в "Словах с друзьями".
я знаю это [facebook requestWithGraphPath:@"me/friends" andDelegate:self];
просит друзей из Facebook, но я не могу определить, что делать оттуда. Каким-то образом я хочу получить идентификаторы друзей, чтобы я мог отправить им сообщение. Любая информация или совет будет высоко ценится. заранее спасибо
2 ответа
- (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];
}
а затем показать NSArray в TableView
Вы можете попробовать это, если хотите получить друга пользователя с фотографиями профиля одновременно. Первый:
- (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];
}
Затем, когда вы получите ответ, обработайте его:
-(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);
}
По сути, resultSet2 представляет собой массив записей, каждая из которых содержит друга, с этими ключами в словарях для каждого друга: - uid - name - pic_small
Поэтому у вас есть все, что вам нужно. Надеюсь, поможет!