twilio - Vcard 彩信文件名始终为 "text 1"

标签 twilio

当使用 mediaUrl 选项通过 Twilio 通过 SMS 消息发送 vcard 文件时,它会显示在 iPhone 上,文件旁边有“text 1”,就好像“text 1”是文件名一样。

我尝试重命名 vcard 文件,使用示例 vcard 文件等。无论文件显示为“文本 1”。

Example vcf

我在 iPhone 8 和 10 上试过。我试过裸骨 VCF 文件和 Outlook 中的全功能文件,甚至在线示例,例如 http://www.w3.org/2002/12/cal/vcard-examples/john-doe.vcf - 无论如何,它们在 iPhone 上显示为“文本 1”。

我该怎么做才能使它成为电话号码或姓名?

编辑 --- 在@philnash 发表评论后,我能够向文件添加一个内容处置 header ,该 header 现在返回 header 中,如下所示:

 Content-Disposition: attachment; name="John Doe"; filename="john-doe.vcf" 

这是 Fiddler 的截图:
Fiddler screenshot

我还将文件重命名为唯一名称,并再次尝试以防 Twilio 或沿途的任何地方缓存旧文件。标题在那里,但消息仍然在 iPhone 上显示“文本 1”。

以防它与 Azure blob 存储有关。我还编写了一个 ASP.Net MVC 文件操作,该操作返回带有内容处理 header 的文件 - 它也在 iPhone 上显示为“文本 1”。
IIS server

最佳答案

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

当 Twilio 为 MMS 提供元数据时,它基于 Content-Disposition从您提供的 URL 请求媒体时获取的 header 。当没有可用的时,它会被设置为通用的东西,比如在这个例子中的“text 1”。

要克服这个问题,您需要设置 Content-Disposition您正在服务的文件上的响应 header 。在此标题中,您可以声明名称和文件名。我无法对此进行测试(我不在美国,因此无法从 Twilio 接收彩信)但我猜想使用了该名称,尽管我也会使用文件名进行测试。

标题应该看起来像这样:

Content-Disposition: inline; name="John Doe"; filename="john-doe.vcf"

关于twilio - Vcard 彩信文件名始终为 "text 1",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55387816/

相关文章:

Twilio Studio - 连接调用超时

javascript - 使用AJAX调用Node.js文件发送短信

python - Twilio/Django 未收到回复短信

javascript - 从 Node.JS 回调函数启用 CORS

twilio - "Muted"Twilio 中 RemoteAudioTrack 的条件检测

javascript - 在 twilio-video 中,如果我连接到一个 automaticSubscription 设置为 false 的房间,我以后如何订阅远程轨道?

java - 使用 Twilio sms api 从 Java Web 应用程序发送短信时出现异常

twilio - 如何通过 Twilio 在一个电话中使用多个 Kynetx 应用程序?

c# - Twilio 休息 API 错误代码 21612

node.js - 错误 : Twilio could not find a Channel with the specified From address