Twilio:如何在发送消息时向媒体添加名称?

Twilio: how to add name to media while sending message?

我正在使用 npm 模块

https://www.npmjs.com/package/@twilio/conversations

我正在使用以下代码发送媒体:

props.conversationProxy.sendMessage({
  contentType: event.target.files.files[0].type,
  filename:event.target.files.files[0].name,
  media: event.target.files.files[0]
});

我在下面尝试了文件名,但没有任何效果

file_name:event.target.files.files[0].name,

fileName:event.target.files.files[0].name,

FileName:event.target.files.files[0].name, 

file:event.target.files.files[0].name, 

name:event.target.files.files[0].name

从 twilio 获取以下内容:

{ 
contentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
​​
filename: null
​​
sid: "MEXXXXXXXXXXXXXXXXXXXXXXXXXX"
​​
size: 4697
}

我想发送带有文件名的媒体。

获取文件名的正确方法是

event.target.files[0].filename

这里是 Twilio 开发人员布道者。

SDK 文档显示 options you can pass when sending media through the Conversations SDKConversation#SendMediaOptions)是:

Name        | Type          | Description
------------|---------------|----------------------
contentType | String        | content type of media
media       | String/Buffer | content to post

filename 不是一个选项,因此您不能将其传递给 SDK。

根据 the documentation,您可以通过将数据提供为 FormData 对象来设置文件名:

const formData = new FormData();
formData.append('file', event.target.files[0]);
formData.append('filename', event.target.files[0].filename);
formData.append('contentType', event.target.files[0].type);

channel.sendMessage(formData);

我还没有测试过,但希望它有用。