我需要帮助。。。我正在尝试通过ChatWoot API发送文件,但我无法做到…
我使用的是NestJS,一个NodeJS框架。
我使用";HttpService";从"@nestjs/axios";包裹
FormData使用";表单数据";包裹
我正在这样做:我的代码片段
";文件";变量来自类型";fs。ReadStream";,指向文件位置。
我得到的回复是:
{
"id": 284,
"content": null,
"inbox_id": 2,
"conversation_id": 54,
"message_type": 1,
"content_type": "text",
"content_attributes": {},
"created_at": 1659106073,
"private": false,
"source_id": null,
"sender": {
"id": 1,
"name": "John",
"available_name": "John",
"avatar_url": "https://www.gravatar.com/avatar/0d722ac7bc3b3c92c030d0da9690d981?d=404",
"type": "user",
"availability_status": "online",
"thumbnail": "https://www.gravatar.com/avatar/0d722ac7bc3b3c92c030d0da9690d981?d=404"
}
}
此外,我尝试过";文件";变量作为Buffer,但响应是相同的。
我做错了什么?
谢谢!!
具有讽刺意味的是,我也遇到过同样的问题,最后我不得不使用Axios成功地将表单发布到Chatwoot(自托管(,以下是我正在使用的工作代码。虽然我在你的代码中没有看到任何错误,但我希望这个片段能有所帮助,因为这是我经过一天的修补后开始工作的唯一方法。
var form = new FormData();
form.append("message_type", "incoming");
form.append("attachments[]", fs.createReadStream(filePath));
const formHeaders = form.getHeaders();
axios
.post(
baseUrl +
"accounts/" +
accountId +
"/conversations/" +
conversation.id +
"/messages",
form,
{
headers: {
...formHeaders,
api_access_token: apiKey,
},
}
)
.then(function (response) {
console.debug("Axios Post Attachment to Chatwoot Response", response);
// resolve(response);
})
.catch(function (error) {
console.error("Axios Post Attachment Error", error);
// reject(error);
});