【问题标题】: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
【问题描述】:
【问题讨论】:
标签:
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 年)。