Как наиболее эффективно получить список имен друзей пользователя Facebook в SDK Facebook iOS? - PullRequest
1 голос
/ 23 октября 2010

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

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

Ответы [ 2 ]

3 голосов
/ 07 марта 2011

Я добавил следующий метод в класс 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];
 }

Примечания:

  1. Класс «Контакт» - это класс, который я написал для хранения данных о контактах.
  2. Мне важны только имя и фамилия друга.
  3. Я держу словарь для хранения всех контактов из Facebook, и все контакты, которые находятся в этом словаре, будут отображаться в UITableView
  4. В конце метода я звоню [self.tableView reloadData], чтобы (пере) загрузить все контакты, которые я только что получил с Facebook. если вы попытаетесь вызвать его раньше, как в viewDidLoad, вы просто получите пустую таблицу, потому что контактов еще нет.
1 голос
/ 24 сентября 2012

Используя 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 для управления списком выбора для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...