尝试通过Twilio SMS发送GIF时出现Invalid-Content-Type错误

时间:2017-05-22 20:23:06

标签: ruby twilio giphy

我有这段代码用GIF发送彩信。 (使用带有Sinatra的Ruby,在Heroku上托管)。

client.messages.create(
  to: to,
  from: phone, 
  body: message,
  media_url: 'http://media.giphy.com/media/zl170rmVMCpEY/giphy.gif'
)

失败,Twilio的调试控制台显示12300无效的内容类型错误。我确定我在这里遗漏了一些简单的东西,但我无法弄清楚是什么。

1 个答案:

答案 0 :(得分:1)

您使用的网址是根据请求的Accept标头返回不同类型的内容。

在Chrome中,使用" Content-Type" " text / html"的标题。鉴于URL上的.gif后缀,这是令人惊讶的。

Chrome接受标题如下:Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

但是,如果我使用curl -I http://media.giphy.com/media/zl170rmVMCpEY/giphy.gif,我会获得Content-Type: image/gif

如果您查看HTML页面上的图片网址,请在Chrome中实际显示:https://i.giphy.com/zl170rmVMCpEY.webp

webp是gif的另一种格式,我怀疑如果浏览器支持它,它会被提供而不是gif。

如果Twilio支持webp格式图像,您可以使用它。

Gify似乎也使用mp4格式,它看起来像品牌为gif,但实际上并不能为那些可以接受HTML或WebP内容的客户提供服务。