Facebook 应用程序 - 用户首次登录应用程序后测试用户 ID 更改
Posted
技术标签:
【中文标题】Facebook 应用程序 - 用户首次登录应用程序后测试用户 ID 更改【英文标题】:Facebook app - Test User ID changes after user first logins the app 【发布时间】:2014-11-15 14:01:19 【问题描述】:我正在构建一个应用程序,允许用户搜索其他 Facebook 用户(使用 Graph API 上的搜索节点,类似于:search?q=T&type=user&limit=10 用于以 T 开头的用户)并执行对这些用户执行某些“待处理”操作,因此当这些用户第一次连接到我的应用时,他们会知道有人对他们执行了某些“待处理”操作。
现在,当这些用户首次登录我的应用时,他们的 ID 会发生变化(至少对于测试用户而言)。 如果这也发生在普通用户身上,那么我几乎无法识别对他们进行“挂起”操作的用户。
如果是这样,如果用户登录后ID发生变化,如何在没有登录的情况下识别用户?
最终答案: 我打开了一个关于它的 Facebook 错误: https://developers.facebook.com/bugs/1531594233745476
似乎搜索 API 上的 ID 不是应用程序的范围,并且只是全局 ID,直到用户登录我的应用程序(这最终会将他的 ID 更改为范围内的 ID),这意味着没有选项可以检测范围用户和非范围用户。那我觉得用户的搜索节点真的没用了。
【问题讨论】:
通过 API v2.+ 不再可能,这是设计使然。在用户主动连接到您的应用之前,您的应用不应该了解用户的任何信息。 那么为什么会有 ID 呢?有没有办法知道呢?为什么搜索节点是for then呢? 那是一个“剩余”,我想说……以 API 的当前状态,再搜索用户没有多大意义。 非常感谢您的帮助...不幸的是我发现它为时已晚,不得不更改我的应用程序以适应)-: 【参考方案1】:如果您调用 /v2.0/search?q=T&type=user,返回的 ID 将与用户登录您的应用时的 ID 相同 - 只要您的应用调用登录对话框也使用 v2.0网址。
在 v2.x 中,一个人的 ID 始终是一致的。但是,如果您的应用程序的某些部分调用 v1.0 而其他部分调用 v2.x,则除非他们已登录您的应用程序,否则一个人的 ID 将发生变化,在这种情况下,两个版本之间的 ID 将相同。
如果您使用的是测试应用,那么您的生产应用和测试应用之间的 ID 应该匹配 - 例外情况是同一用户使用 v1 登录 prod 应用和使用 v2 登录测试应用。
消除这种不一致的最简单方法是将您在 prod 应用和所有测试应用中的所有 API 调用转换为调用 v2.x。
【讨论】:
你确定吗?那么,当我通过测试用户登录时,为什么会发生这种情况呢?我在我的应用中使用 v2 及更高版本。以上是关于Facebook 应用程序 - 用户首次登录应用程序后测试用户 ID 更改的主要内容,如果未能解决你的问题,请参考以下文章
如何检查用户是不是刚刚在 Firebase 中首次登录 Google