2020年10月24日,如果用户id不是应用范围用户id(ASID(,Facebook将开始屏蔽个人资料照片URL。
在Facebook切换到ASID之前,我们在网站上实现了Facebook登录,因此在此之前我们有许多注册用户。问题是,对于这些老用户,Facebook向我们报告的是他们的全球用户Id(UID(,而不是ASID";已登录您的应用程序的用户的ID不会更改。它将保持锁定为用户的原始Facebook ID(来源(。我们没有找到为他们获得ASID的方法(这些答案不再有效:1和2(
在这些情况下,经典的Facebook个人资料URL将停止工作:
现状:
https://graph.facebook.com/4/picture
从10月24日起,它将不起作用:
https://graph.facebook.com/4/picture?breaking_change=profile_picture
在";图片";JSON身份验证令牌中的参数,我们得到一个照片URL,但它来自Facebook CDN,可能会过期(每次用户登录时都会更改,即使几乎没有时间过去(。
因此,问题是:在ASID实施之前,我们如何为在我们网站上注册的用户生成一个公共的、稳定的、永久的图片URL?
我们无法将访问令牌添加到URL,因为它将在网站中公开使用(我们不是下载图像,只是内联它们(。
此处为Facebook API PM。这里最好的做法是在您的请求中使用客户端令牌来获取图像。这在大多数Graph API上通常是不允许的,但在这里是为了更容易迁移这样的情况。
与应用程序令牌不同,客户端令牌可以安全地向用户公开,并用于此类情况。