使用 Twilio 发送的 vCard 未在 iOS 中正确呈现
vCard sent with Twilio not properly rendered in iOS
我正在尝试使用 curl
将 vCard 发送到我的 iOS,但是 vCard 在我的 iPhone.
中没有正确呈现
EXCLAMATION_MARK='!'
curl -X POST https://api.twilio.com/2010-04-01/Accounts/<acc>/Messages.json \
--data-urlencode "Body=Test6$EXCLAMATION_MARK" \
--data-urlencode "MediaUrl=https://mighty-health-assets.s3.amazonaws.com/vcf/James.vcf" \
--data-urlencode "From=+14155926669" \
--data-urlencode "To=+14159108243" \
-u <acc>:<token>
我用我的文件尝试了不同的 Content-Type
和 Content-Disposition
。
对于内容配置:
inline; filename="James.vcf"
attachment; filename="James.vcf"
inline; name="James"
attachment; name="James"
对于内容类型:
text/vcard
text/x-vcard
text/vcard
text/vcard; charset=utf-8; name="fileName.vcf"
结果总是一样的:
我想知道接下来要尝试什么,或者您之前是否遇到过同样的问题。
问题排查
事实证明其中一个配置是正确的,而我遇到的问题是另一个配置。
- 当 Twilio 第一次收到文件时,它会缓存
- 如果您相应地调整 headers 它不会影响 VCF 文件的传送,因为它将使用缓存版本
- 有办法克服这个问题
Twilio 缓存
要删除文件缓存或设置适当的缓存策略,请阅读:https://support.twilio.com/hc/en-us/articles/360024716314-How-Can-I-Change-the-Cache-Behavior-or-Message-Media-Files-
疑难解答我发现 Twilio 不会仅根据 VCF 文件的文件名更改缓存,而是根据文件内容本身,因此您必须修改文件才能清除缓存,而不仅仅是名字.
正确配置
为了让 iOS phone 正确解析文件,您可以使用与附件相同的文件格式 https://mighty-health-assets.s3.amazonaws.com/vcf/James+Li.vcf
Headers
iOS 上的名片只能显示与您的文件相同的文本,因此请使用与 filename
header 属性 相同的文件名12=] 它应该相应地工作
Content-Disposition: inline; filename="<You file name>.vcf"
Content-Type: text/x-vcard
Cache-Control: no-cache
我正在尝试使用 curl
将 vCard 发送到我的 iOS,但是 vCard 在我的 iPhone.
EXCLAMATION_MARK='!'
curl -X POST https://api.twilio.com/2010-04-01/Accounts/<acc>/Messages.json \
--data-urlencode "Body=Test6$EXCLAMATION_MARK" \
--data-urlencode "MediaUrl=https://mighty-health-assets.s3.amazonaws.com/vcf/James.vcf" \
--data-urlencode "From=+14155926669" \
--data-urlencode "To=+14159108243" \
-u <acc>:<token>
我用我的文件尝试了不同的 Content-Type
和 Content-Disposition
。
对于内容配置:
inline; filename="James.vcf"
attachment; filename="James.vcf"
inline; name="James"
attachment; name="James"
对于内容类型:
text/vcard
text/x-vcard
text/vcard
text/vcard; charset=utf-8; name="fileName.vcf"
结果总是一样的:
我想知道接下来要尝试什么,或者您之前是否遇到过同样的问题。
问题排查
事实证明其中一个配置是正确的,而我遇到的问题是另一个配置。
- 当 Twilio 第一次收到文件时,它会缓存
- 如果您相应地调整 headers 它不会影响 VCF 文件的传送,因为它将使用缓存版本
- 有办法克服这个问题
Twilio 缓存
要删除文件缓存或设置适当的缓存策略,请阅读:https://support.twilio.com/hc/en-us/articles/360024716314-How-Can-I-Change-the-Cache-Behavior-or-Message-Media-Files-
疑难解答我发现 Twilio 不会仅根据 VCF 文件的文件名更改缓存,而是根据文件内容本身,因此您必须修改文件才能清除缓存,而不仅仅是名字.
正确配置
为了让 iOS phone 正确解析文件,您可以使用与附件相同的文件格式 https://mighty-health-assets.s3.amazonaws.com/vcf/James+Li.vcf
Headers
iOS 上的名片只能显示与您的文件相同的文本,因此请使用与 filename
header 属性 相同的文件名12=] 它应该相应地工作
Content-Disposition: inline; filename="<You file name>.vcf"
Content-Type: text/x-vcard
Cache-Control: no-cache