【问题标题】:vCard sent with Twilio not properly rendered in iOS使用 Twilio 发送的 vCard 未在 iOS 中正确呈现
【发布时间】:2019-09-26 22:28:57
【问题描述】:

我正在尝试使用 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-TypeContent-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 vcf-vcard


    【解决方案1】:

    疑难解答问题

    原来其中一个配置是正确的,而我面临的问题是另一个。

    1. 当 Twilio 第一次接收文件时,它会缓存
    2. 如果您相应地调整标头,它不会影响 VCF 文件的传递,因为它将使用缓存版本
    3. 有办法克服这个问题

    Twilio 缓存

    要删除文件上的缓存或设置适当的缓存策略,请阅读:https://support.twilio.com/hc/en-us/articles/360024716314-How-Can-I-Change-the-Cache-Behavior-or-Message-Media-Files-

    疑难解答我发现 Twilio 不会仅根据 VCF 文件的文件名更改缓存,而是根据文件内容本身更改缓存,因此您必须修改文件才能清除缓存,而不仅仅是名称。

    正确配置

    为了得到iOS手机正确解析的文件,您可以使用与附件https://mighty-health-assets.s3.amazonaws.com/vcf/James+Li.vcf相同的文件格式

    标题

    iOS 上的联系人卡片只能显示与您的文件相同的文本,因此请使用 Content-Type 上相同的 filename 标题属性命名您的文件,它应该会相应地工作

    Content-Type: inline; filename="<You file name>.vcf"
    Content-Disposition: text/x-vcard
    Cache-Control: no-cache
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-18
      • 2018-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多