从Facebook ID查找用户名的最佳方式

时间:2013-05-19 17:02:38

标签: iphone ios objective-c facebook cocoa-touch

我有一个facebook用户的ID。如何获取用户名?

具体来说,我使用的是FBFriendPickerController

for (id<FBGraphUser> user in self.friendPickerController.selection) {
   NSLog(@"The Facebook User: %@", user);
}

^这会输出名称,ID,名字,姓氏,个人资料照片等内容,但不会提供用户的用户名。

那么,关于FBFriendPickerController,获取所选用户的用户名的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

设置好友拣货员控制器时,你可以做类似的事情:

// Initialize the friend picker
FBFriendPickerViewController *friendPickerController = 
    [[FBFriendPickerViewController alloc] init];
...
// Ask for friend device data
friendPickerController.fieldsForRequest = 
    [NSSet setWithObjects:@"username", nil];

然后,当返回朋友选择器数据时,也应返回用户名信息。

您可以实现朋友选择器委托方法,以获取用户名信息的迂回方式。实现:friendPickerViewController:shouldIncludeUser:

在此方法中,您可以检查应包含用户名的返回数据:

- (BOOL)friendPickerViewController:(FBFriendPickerViewController *)friendPicker
             shouldIncludeUser:(id<FBGraphUserExtraFields>)user
{
    NSString *username = user.username;
    // Process the username however you wish to.
    return YES;
} 

对于类似的问题,在这种情况下查找“设备”信息,请参阅文档:https://developers.facebook.com/docs/howtos/filter-devices-friend-selector-using-ios-sdk/

答案 1 :(得分:0)

确定。我想出了一条出路。

您可以通过查看

返回的JSON来查找用户名
graph.facebook.com/(fb_id)

但有没有一种更好的方法,直接来自friendPickerController,这就是问题。