2010-10-23 25 views

回答

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管理選擇列表爲您服務。

相關問題