【问题标题】:Best Way To Find a Username From a Facebook ID从 Facebook ID 查找用户名的最佳方法
【发布时间】:2013-05-19 17:02:38
【问题描述】:

我有一个 facebook 用户 ID。我如何获得他们的用户名?

具体来说,我使用的是 FBFriendPickerController

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

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

那么,对于 FBFriendPickerController,获取选定用户的用户名的最佳方式是什么?

【问题讨论】:

  • 您不能(也不应该)从 FB API 获取用户名。您可以输入用户名、姓氏、全名、中间名:但不能输入用户名(作为登录凭据的一部分)。如果可能的话,这将是 FB API 中的安全风险。也就是说,通常用户电子邮件(您可以通过 FB API 获得)通常也是登录用户名。
  • @rokjarc 我不完全明白为什么这会带来安全风险,看看下面我的解决方案,有没有更好的方法呢?
  • 如果您可以通过(作为登录凭据的一部分)他的 facebook id 获取用户名,这会带来安全风险。那么你所需要的只是他的密码,你可以劫持一个帐户。用户名(不是用户名)完全不同。
  • @rokjarc 但是使用下面的解决方案可以轻松访问用户名? #仍然困惑
  • 我的错:我正在考虑用户名在他的登录时使用。这不是fb的情况。对于 fb 登录,您需要输入电子邮件或电话(作为登录“用户名”)。

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


【解决方案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/

【讨论】:

  • 感谢@CAbernathy,这是一个更好的解决方案,哈哈,我想,我想我以前在某个地方见过你,而不是我意识到我在 Facebook 文档中见过你。总之,非常感谢!
【解决方案2】:

好的。我想出了一个办法。

你可以通过查看返回的JSON找到用户名

graph.facebook.com/(fb_id)

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

【讨论】:

    猜你喜欢
    • 2015-03-13
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多