【问题标题】:How do I know if a Facebook user id is a global uid or an app-scoped user id (ASID)?我如何知道 Facebook 用户 ID 是全局 uid 还是应用范围内的用户 ID (ASID)?
【发布时间】:2020-09-28 21:39:24
【问题描述】:

自 2020 年 10 月 24 日起,Facebook 需要访问令牌才能根据用户 ID 查询个人资料照片。

https://developers.facebook.com/docs/graph-api/reference/user/picture#requirements-change

他们建议在 URL 中附加 Breaking_change=profile_picture,但我有很多用户 ID,这使得测试每个 ID 都存在问题。我如何知道哪些将来需要访问令牌,哪些当前属于应用范围且不需要额外的访问令牌?

【问题讨论】:

    标签: facebook facebook-graph-api facebook-opengraph


    【解决方案1】:

    如果您尝试确定某个 id 是否属于应用范围,则用户 id 会在范围内(id = 100000000000000 && id

    以下代码已有 10 年历史,但范围似乎仍在使用: https://github.com/facebookarchive/facebook-js-sdk/blob/deprecated/src/xfbml/helper.js#L37

    我已经测试了许多尽可能接近这些边界的用户 ID,并发现此答案中的陈述是准确的。

    为了澄清,需要额外授权的用户 ID 属于上述范围。仅仅因为 Facebook 的 API 返回的 ID 不在此范围内,并不表示它是应用范围的 ID。它可能是帖子、评论等的 ID。如果您知道某个 ID 对应于某个用户并且不在此范围内,则可以假定它已经是应用范围内的。

    为了进一步参考,Facebook 的 API prior to v2.0 返回了非应用范围的用户 ID。 2015 年 4 月 30 日之前未升级的应用程序将自动升级。升级到 v2.0 后“已登录您应用的用户的 ID 不会更改。它将保持锁定为用户的原始 Facebook ID。”因此,该 API 仍然可以为在升级之前使用您的应用的用户返回一个非应用范围的 ID(即使最近是 2020 年)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多