小编Yu *_* Ng的帖子

Whatsapp Cloud API 上传媒体文件错误

目前我正在尝试围绕 Whatsapp Cloud API 制作一个薄包装器。我目前面临的问题之一是上传媒体文件无法正常工作。

查看上传文件的文档,似乎它需要将multipart/form-data有效负载发送到端点。

这是我当前的实现

import FormData from 'form-data';
import fs from 'fs';
import axios from 'axios';

const formData = new FormData();

formData.append('file', fs.createReadStream('path/to/my/file.jpg'));
formData.append('messaging_product', 'whatsapp');
formData.append('type', 'image/jpeg');

await axios.post('https://graph.facebook.com/v14.0/PHONE_NO_ID/media', formData, {
  headers: { 'Authorization': ACCESS_TOKEN }
});
Run Code Online (Sandbox Code Playgroud)

看看它返回的错误,似乎我在某种程度上丢失了该messaging_product字段,即使我已将其正确添加到 formData 中。

{
  "error": {
    "message": "(#100) The parameter messaging_product is required.",
    "type": "OAuthException",
    "code": 100,
    "fbtrace_id": "FBTRACE_ID"
  }
}
Run Code Online (Sandbox Code Playgroud)

Postman集合用于上传媒体文件,所以我认为fileformData 的字段是问题所在。是fs.createReadStream在文件上相当于Postman处理文件上传的方式

编辑:问题已经解决,问题不是添加到 formData 生成的标题中,感谢下面的菲尔!

javascript form-data node.js whatsapp axios

4
推荐指数
1
解决办法
2380
查看次数

标签 统计

axios ×1

form-data ×1

javascript ×1

node.js ×1

whatsapp ×1