无法从 WhatsApp Business API 下载媒体 - 使用 Postman 和 cURL - 不使用 NodeJS Fetch

问题描述 投票:0回答:1

我在尝试从 WhatsApp Business API 下载媒体文件时遇到问题。遵循他们的文档(https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media#download-media),他们提供了一个 cURL 命令,在使用时可以成功下载媒体文件 -然而,使用 NodeJS 的 fetch 完成相同的请求(我认为)会返回

text/html
响应,其中包含模糊的错误措辞和 200 状态代码。

# Successful cURL:
curl "https://lookaside.fbsbx.com/whatsapp_business/attachments/?mid=281274211304477&ext=1705672414&hash=ATtH6AOGFu0RqEpENicHUg8HCUkVfwGzfrHVCdiE7J8AUA" --header "Authorization: Bearer ..."
// Successful cURL from child_process.exec:
exec(
  `curl --location "${mediaURL}" --header "Authorization: Bearer ..."`
);
// Unsuccessful fetch:
fetch(
  "https://lookaside.fbsbx.com/whatsapp_business/attachments/?mid=281274211304477&ext=1705672414&hash=ATtH6AOGFu0RqEpENicHUg8HCUkVfwGzfrHVCdiE7J8AUA",
  { headers: { Authorization: "Bearer ..." } }
);

来自 WhatsApp Cloud API Receiving Images from Users Error的建议也没有成功,不幸的是:

// Also unsuccessful fetch:
fetch("https://lookaside.fbsbx.com/whatsapp_business/attachments/?mid=281274211304477&ext=1705672414&hash=ATtH6AOGFu0RqEpENicHUg8HCUkVfwGzfrHVCdiE7J8AUA", {
  headers: {
    Authorization: "Bearer ...",
    "User-Agent": "curl/7.64.1",
  },
})

注意:

lookaside.fbsbx.com
URL 均已从 WhatsApp Business API 成功检索。

根据文档,如果链接已过期,则应出现 404 错误,但事实并非如此 - 并且访问令牌也未过期。查看社区论坛,特别是 https://developers.facebook.com/community/threads/1367000994138329/?join_id=f25971b6b4f9cc4,许多对话表明

User-Agent
标头应该被欺骗 - 但这似乎并不尽管在 Postman 中调整
User-Agent
标头会产生不同的结果,但都可以工作。

邮递员成功:

在Postman中调整

User-Agent
时不成功:

在Postman中删除

User-Agent
时不成功:

如有任何建议,我们将不胜感激。我无法使用 Meta for Developers 的“报告错误”表单,因为 WhatsApp Business API 似乎不提供支持。

还看到了 StackOverflow 上的帖子:12;元支持论坛上的 123456

node.js facebook curl whatsapp whatsapp-cloud-api
1个回答
0
投票

遇到同样的问题。

使用用户代理:

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
似乎对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.