强制 FACEBOOK GRAPH API 显示个人资料 url 图片而不是下载它

Force FACEBOOK GRAPH API to show profile url image instead download it

使用 Facebook API Graph 8.0,我得到 JSON 和

https://graph.facebook.com/v8.0/1234567890?fields=picture&redirect=false&access_token=my_secret_token

内容如下:

{
  "picture": {
    "data": {
      "height": 100,
      "is_silhouette": false,
      "url": "https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=1234&height=100&width=100&ext=1234&hash=abc",
      "width": 100
    }
  },
  "id": "1234567890"
}

但是当我尝试做一个

<img src="https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=1234&height=100&width=100&ext=1234&hash=abc">

不起作用,在浏览器中下载但不显示。

如何使用图像 and/or 如何检索 Facebook 个人资料 URL 以显示它?

提前致谢

如果您只想显示您的图像,有一种比使用访问令牌查询图 api 然后显示图像更简单的方法来显示图像。

您可以直接使用 <img> 标签。

只需将 /picture 添加到 api 调用的末尾,这样

<img src="https://graph.facebook.com/1234567890/picture">

您也可以要求不同的尺码,例如

<img src="https://graph.facebook.com/1234567890/picture?width=360&height=900">

或带

的方形缩略图
<img src="https://graph.facebook.com/1234567890/picture?type=square">

有关更多信息,请查看此处: Facebook graph api v8 User Picture 通知

Facebook 有两种 UID,一种是每个用户在加入 facebook.com 时分配的原始 UID,另一种是 App-Scope 每个用户在安装 Facebook 应用程序时获得的 UID。当调用 /me 等端点时,您的应用程序将始终检索 App-Scope UID。获取原始 UID 的方法是使用不同的技术手动收集它们或设置 web-scraper 自动收集。

当 user_id 是原始 UID 时,facebook 正在弃用使用 /user_id/picture 端点访问照片,除非提供 access_token 这不应该打扰任何人,因为所有应用程序都会获得应用程序范围 UID,除非你是正在尝试调试您的应用,但无法弄清楚为什么它无法正常工作。