用户的Facebook用户ID似乎在他们授予我的应用程序权限后发生变化,完全打破了我的“应用程序请求”

时间:2014-10-19 23:50:07

标签: facebook facebook-graph-api userid

当我在Facebook上遇到新一批测试用户的问题时,我们刚刚对游戏进行了最后的修改。

在我的游戏中,您可以通过请求对话邀请Facebook好友参加您的比赛。在用户选择他们的朋友之后,应用对话会吐出他们所选择的Facebook ID列表。我将这些用户添加到当前匹配中作为“待定”用户,并将他们的Facebook ID存储在数据库中的某个位置。在这一点上,他们的Facebook ID看起来相当标准。

让我假装我通过应用请求邀请测试用户1 到游戏中并将他们的Facebook ID存储在我的数据库中(100006 ******** 4)。

现在,当该用户看到应用程序请求时,他们将下载我的应用程序并使用他们的Facebook帐户登录。此时,系统会要求他们将我的应用授予其帐户。他们接受后,他们的Facebook ID现在变得完全不同(303918 ******** 0)。更奇怪的是,我似乎找不到任何ID为'100006 ******** 4'的用户了。

当我查看待处理用户列表时,我会获取个人资料图片以及这些用户的名字。所以在这种情况下,我的应用程序尝试获取个人资料图片/名称“100006 ******** 4”,但Facebook不再返回有关该用户的任何信息。获取个人资料图片/名称'303918 ******** 0'会返回有效结果。

所以现在我遇到了这个问题,我的游戏正在等待这个不再存在的用户。我无法将待定用户的Facebook ID与他们的新ID相关联。

我认为这与新的应用程序范围的用户ID有关,但在修复此问题时我感到很茫然。

请求对话框似乎也不一致 - 它将返回Facebook ID和“app-scoped用户ID”的混合。也就是说,如果我现在邀请之前被识别为“100006 ******** 4”的用户加入新游戏,他已授予我的应用的权限,请求对话将会吐出'303918 ******** 0'作为用户ID,而不是'100006 ******** 4',就像他们授予我的应用程序权限之前一样。