FBLoginView return 用户对象中的 id 是否正确?

Does the FBLoginView return the correct id in the user object?

我知道 Facebook 已决定加密应用程序特定的用户 ID,获取当前用户 ID 的可接受方式是查询图表中的 /me。但是,我注意到我的 FBLoginView 委托方法

-(void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user;

returns 访问时的 FBGraphUser

[user objectForKey: @"id"]

returns 我的真实 facebook id。一旦所有调用都升级后,这种行为会改变吗?或者我可以指望这个对象提供正确的 facebook id 吗?

使用 API v1 至少登录一次应用的用户的用户 ID 已经不会改变,您的应用仍将收到这些用户的全局用户 ID;仅针对首次使用 v2 登录的用户(即,之前没有使用过它),将发布一个应用范围的用户 ID。

仅在使用 v2 后首次登录的用户的应用范围用户 ID “正确”信息。这是您的应用程序在处理首次通过 v2 登录的用户时应该看到的唯一 ID。您的应用不能再为此类用户使用全局用户 ID,这只会导致错误。

编辑:
如果用户已经在 v1 下使用过你的应用程序,那么你仍然会获得他们的全局用户 ID,即使他们从他们的设置中删除了该应用程序并稍后再次开始使用它也是如此。 (例如,通过 Facebook 提供登录的外部网站 当然需要 这种一致性,所以 Facebook 就是这样实现的。)