我在try 使用Axios将图像上载到WhatsApp Cloud API时遇到问题.尽管将扩展名为.png
的图像的表单数据的内容类型设置为image/png
,但我仍然从WhatsApp收到一条错误消息,指出扩展名为invalid_request
.错误消息特别提到了the parameter "file" must be a file with one of the specified MIME types,,但它正在接收类型为"APPLICATION/OCTET-STREAM"的文件.
从WhatsApp收到的错误消息为:
OAuth‘Facebook Platform’‘INVALID_REQUEST’‘(#100)参数文件必须是以下类型之一的文件: 音频/AAC、音频/mp4、音频/mpeg、音频/amr、音频/ogg、音频/opus、应用程序/vnd.ms-Powerpoint、应用程序/msword、application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.presentationml.presentation,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,应用程序/pdf、文本/纯文本、应用程序/vnd.ms-Excel、图像/jpeg、图像/png、图像/wep、视频/mp4、视频/3GPP.收到类型为‘应用程序/八位字节流’的文件
下面是node.js文件的代码
(async () => {
const formData = new FormData();
formData.append("messaging_product", "whatsapp");
formData.append("type", "image/png");
const stream = await streamToBlob(
fs.createReadStream(
"/filepath"
)
);
formData.append("file", stream);
console.log("formData", formData);
let config = {
method: "post",
maxBodyLength: Infinity,
url: `https://graph.facebook.com/v18.0/${phoneNumberId}/media`,
headers: {
Authorization:
`Bearer ${token}`,
"Content-Type": "multipart/form-data;image/png",
},
data: formData,
};
axios
.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
})();