Facebook Graph API/ JavaScript SDK 配置文件图片未找到 (404) 错误

Nis*_*nga 15 facebook-graph-api facebook-javascript-sdk

当尝试从 Facebook 图形 API 或 JavaScript SDK 访问用户个人资料图片时,会返回图片的 url,但在请求时该 URL 不会解析为图片。

JavaScript SDK 返回 404 错误,[链接] 在此输入图像描述

注意:是的,这些个人资料有个人资料图片,我尝试使用多个用户帐户。(我的 Facebook 应用程序尚未上线,但所有配置文件都作为测试人员/开发人员帐户添加到 中App roles。因此,至少我应该根据此处提到的限制获取剪影个人资料图片。

这些是我尝试过的事情。

尝试过的解决方案 01

FB.api(
  '/me',
  { fields: 'id,name,email,picture' },
  (response: { name: string; id: string }) => {
    console.info(response);
  }
);
Run Code Online (Sandbox Code Playgroud)

此 API 调用解析为类似的 URL,https://z-p3-graph.facebook.com/v18.0/me?access_token=并且响应具有图片 URL,但这是行不通的。

{
    "id": "122098927370045754",
    "name": "John Doe",
    "email": "someone@gmail.com",
    "picture": {
        "data": {
            "height": 50,
            "is_silhouette": false,
            "url": "https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=122098927370045754&height=50&width=50&ext=1702101647&hash=AeQk6_WB4RtEAIyWrwI",
            "width": 50
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

尝试过的解决方案 02

我在SO上发现的另一种方法是使用访问令牌直接调用 graph.acebook.com。

https://graph.facebook.com/122098927370045754?fields=picture.width(720).height(720)&redirect=false&access_token=
Run Code Online (Sandbox Code Playgroud)

它还提供了一个 URL,但不起作用。

{
    "picture": {
        "data": {
            "height": 200,
            "is_silhouette": false,
            "url": "https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=122098927370045754&height=720&width=720&ext=1702102119&hash=AeQAsmiIwfIfV9vgQ-Y",
            "width": 200
        }
    },
    "id": "122098927370045754"
}
Run Code Online (Sandbox Code Playgroud)

尝试过解决方案03

此处https://graph.facebook.com/{facebookId}/picture?type=large提到的类似 的 URL仅返回剪影图片,这是可以理解的,因为现在我们需要访问令牌来访问这些图片。

但根据文档,使用访问令牌,

https://graph.facebook.com/122098927370045754/picture?type=large&access_token=
Run Code Online (Sandbox Code Playgroud)

它返回相同的https://platform-lookaside.fbsbx.com/URL,但未找到。

我在这里错过了什么吗?还是FaceBook API本身的问题?任何帮助,将不胜感激。

编辑:在 Meta Developers 找到这个线程。不过还是没有解决。https://developers.facebook.com/community/threads/292690177015780/

编辑 12/27/2023:在我们的 Facebook 应用程序发布(实时)后,个人资料图像开始工作。也许未发布的应用程序不允许访问图像。

Nis*_*nga 3

在我们的 Facebook 应用程序发布(实时)后,个人资料图像开始工作,例如这个,它有一个较长的哈希值(该哈希值每次用户登录时都会发生变化)。

https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=122098927370045754&height=50&width=50&ext=1706283859&hash=AfqHvub2WlgL1CNN6bY__pjilZeRBbzlFzmTsnebKTvUPg
Run Code Online (Sandbox Code Playgroud)

也许未发布的应用程序不允许访问图像。