facebook - 如何为非 App-Scoped 用户 ID 构建永久和公开的 Facebook 个人资料照片 URL?

标签 facebook facebook-graph-api facebook-oauth

2020 年 10 月 24 日 Facebook will start blocking profile photos URLs如果用户 ID 不是 App-Scoped 用户 ID (ASID)。

我们在 Facebook 切换到 ASID 之前在我们的网站上实现了 Facebook 登录,因此我们在它之前有很多注册用户。问题是,对于这些老用户,Facebook 向我们报告的是他们的全局用户 ID (UID) 而不是 ASID。 “对于已经登录您的应用程序的人,ID 不会更改。它将保持锁定为用户的原始 Facebook ID。” ( source )。而且我们找不到为他们获取 ASID 的方法(这些答案不再有效:12)

在这些情况下,经典的 Facebook 个人资料 URL 将停止工作:

现状:

https://graph.facebook.com/4/picture

从 10 月 24 日开始,它将不起作用:

https://graph.facebook.com/4/picture?breaking_change=profile_picture

在 JSON 身份验证 token 的“图片”参数中,我们得到一个照片 URL,但它来自 Facebook CDN,它可能会过期(每次用户登录时它都会更改,即使几乎没有时间过去)。

所以问题是:我们如何才能为实现 ASID 之前在我们网站上注册的用户生成一个公开的稳定的、永久的图片 URL?

我们不能将访问 token 添加到 URL,因为它将在网站中公开使用(我们不下载图像,只是内联它们)。

最佳答案

Facebook API PM 在这里。此处最好的做法是在您获取图像的请求中使用客户端 token 。这在大多数图形 API 上通常是不允许的,但在这里是为了更容易迁移这样的案例。

与应用 token 不同,客户端 token 可以安全地暴露给用户,并用于此类情况。

关于facebook - 如何为非 App-Scoped 用户 ID 构建永久和公开的 Facebook 个人资料照片 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64267471/

相关文章:

PHP:将元素 id 作为哈希添加到 Facebook 共享链接

facebook - 在服务器上验证 Facebook 登录

IOS - Facebook 登录按钮 : Unrecognized selector error

php - Facebook评论ID问题

javascript - 带有附加参数的 FQL 的 Facebook JavaScript SDK

javascript - "Like"使用 Facebook 打开图的帖子

facebook - 如何将 Facebook onelogin 事件绑定(bind)到自定义按钮?

dns - 应用程序域 : not a valid domain. 站点 URL 不是有效的 URL

Facebook API : a strange query error 601

ios - 分享视频到 Facebook - Swift IOS