Facebook API:如何获取FB登录用户的唯一ID?API中的ID与v2.0中的"真实"用户ID不匹配

Zid*_*ong 7 facebook-graph-api ios facebook-login facebook-graph-api-v2.0

- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user 
{
    self.profilePictureView.profileID = user.objectID;
    self.nameLabel.text = user.name;
    NSLog(@"My ID:%@", user.objectID);
}
Run Code Online (Sandbox Code Playgroud)

我试图使用上面的代码打印用户ID.而我得到的是3176144783XXXXX.

但是,我使用这个在线工具http://findmyfacebookid.com/得到了另一个.结果是1000042591XXXXX.

有谁知道这个区别?为什么我的应用和'findmyfacebookid.com'会为同一个用户收到不同的用户ID?

注意:我的移动应用程序需要使用FB唯一ID来创建我自己的用户数据库.所以这就是我需要一个唯一ID的原因.

Igy*_*Igy 25

从Facebook API v2.0开始,返回到您应用的用户ID范围限定在您的应用中(即每个应用都会收到任何给定用户的不同标识符) - 您无法比较该网站告诉您的内容与您的应用收到的内容当你打电话的时候,user.objectID因为他们故意不同的字符串

使用返回到您应用的ID作为应用中用户的标识符 - 无需尝试查找"真实"或"旧"用户ID - 您没有理由需要使用提供给任何其他用户的用户ID应用ID

这里有关于从v1.0到v2.0的更改的更多信息:https://developers.facebook.com/docs/apps/upgrading

这里将详细讨论应用程序范围的ID,包括让具有多个应用程序的开发人员为使用多个应用程序的用户核对ID的方法:https://developers.facebook.com/docs/apps/upgrading# upgrading_v2_0_user_ids