2010-10-23 2 views
1

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

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

ответ

3

я добавил следующий метод в 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. класс "Контакт" является CLAS что я написал для хранения данных о контактах.
  2. Меня интересует только имя и фамилия друга.
  3. Я держу словарь, чтобы держать все контакты из Facebook, и др контакты, которые находятся в этом словаре будет отображаться в UITableView
  4. В конце методы, я звоню [self.tableView reloadData] к (ре) загрузите все контакты, которые я только что получил из facebook. если вы попытаетесь позвонить ему раньше, например, в viewDidLoad, вы просто получите пустую таблицу, потому что пока нет контактов.
1

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