我有这段代码用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无效的内容类型错误。我确定我在这里遗漏了一些简单的东西,但我无法弄清楚是什么。
答案 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内容的客户提供服务。