- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user
{
self.profilePictureView.profileID = user.objectID;
self.nameLabel.text = user.name;
NSLog(@"My ID:%@", user.objectID);
}
我尝试使用上面的代码打印用户ID。我得到的是3176144783XXXXX
。
但是,我使用这个在线工具http://findmyfacebookid.com/得到了另一个。结果是1000042591XXXXX
。
有谁知道这个区别?为什么我的应用和'findmyfacebookid.com'会为同一个用户收到不同的用户ID?
注意:我的移动应用需要使用FB唯一ID来创建自己的用户数据库。所以这就是我需要一个唯一ID的原因。
答案 0 :(得分:25)
自Facebook API v2.0起,返回到您应用的用户ID范围限定在您的应用中(即每个应用都会收到任何给定用户的不同标识符) - 您无法比较该网站告诉您的内容您拨打user.objectID
时收到的应用,因为他们故意使用不同的字符串
使用返回到您应用的ID作为应用中用户的标识符 - 无需尝试找到“真实”用户的标识符。或者&#39; old&#39;用户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