Каков наиболее эффективный способ получить список имен друзей пользователей Facebook в iOS SDK для Facebook?

57
6

Я хочу использовать Graph API. И я хочу загрузить их в UITableView.
Кроме того, загрузка всех деталей пользователя медленная...
Есть ли способ сделать это быстрее?


Еще одна вещь:
Есть ли способ загрузить страницу на Facebook в окне входа в систему, которое предоставляется в SDK Facebook iOS после входа пользователя в систему? В значительной степени я хочу загрузить определенную страницу поклонника с учетными данными пользователя...

спросил(а) 2020-04-04T00:33:13+03:00 5 месяцев, 4 недели назад
1
Решение
80

Я добавил следующий метод в класс Facebook, чтобы получить список друзей пользователя:


-(BOOL) getFriendsList : (id<FBRequestDelegate>) delegate
{
if (! [self isSessionValid])
{
return NO;
}
else
{
[self requestWithGraphPath:@"me/friends" andDelegate:delegate];
return YES;
}
}

Для обработки ответа с сервера я написал следующий метод:

- (void)request:(FBRequest *)request didLoad:(id)result
{
NSDictionary * data = result;
NSArray *separatedName;
Contact * current;
_contactsFromFacebook = [[NSMutableDictionary alloc] init];

for (NSDictionary * contact in data)
{
separatedName = [[contact objectForKey:@"name"] componentsSeparatedByString:@" "];
current = [[Contact alloc]
initWithFirstName:[separatedName objectAtIndex:0]
andLastName:[separatedName objectAtIndex:1]];
if(current.alphabeticKey)
{
[self.contactsFromFacebook addObject:current toExsistingArrayWithKey:current.alphabeticKey];
[self addFriendToImportList:current];
}
[current release];
}
self.allKeysSorted = [NSMutableArray arrayWithArray:[self.contactsFromFacebook allKeys]];
[self.tableView reloadData];
}


Примечания:


    Класс "Контакт" - это класс, который я написал для хранения данных о контактах.
    Меня интересует только имя и фамилия друга.
    Я держу словарь для хранения всех контактов из facebook, а также контакты, которые находятся в этом словаре, будут отображаться в UITableView
    В конце метода я вызываю [self.tableView reloadData] для (re) загрузки всех контактов, которые я только что получил из facebook. если вы попытаетесь вызвать его раньше, например, в viewDidLoad, вы просто получите пустую таблицу, потому что пока нет контактов.

ответил(а) 2020-04-04T00:44:29.760154+03:00 5 месяцев, 4 недели назад
57

Используя Facebook SDK 3.0, вы можете получить список друзей таким образом:


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 %@ with id %@", friend.name, friend.id);
}
}];

Рассмотрим KNMultiItemSelector для управления списком выбора для вас.

ответил(а) 2020-04-04T00:33:13+03:00 5 месяцев, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема