2017-05-22 11 views
0

GIFでMMSメッセージを送信するためにこのコードがあります。 (SinatraでRubyを使用し、Herokuでホストされています)。Twilio SMSでGIFを送信しようとすると、無効なコンテンツタイプのエラーが発生する

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

これは失敗し、Twilioのデバッグコンソールに12300の無効なコンテンツタイプのエラーが表示されます。私は何かここでは簡単に欠けていると確信していますが、私は何が分かりません。

答えて

1

使用しているURLは、要求のヘッダーのAcceptに基づいて、別の種類のコンテンツを返します。

Chromeでは「Content-Type」ヘッダーが「text/html」の応答です。 URLの末尾に.gifの接尾辞が付いていると、驚くべきことです。 https://i.giphy.com/zl170rmVMCpEY.webp

:私は curl -I http://media.giphy.com/media/zl170rmVMCpEY/giphy.gifを使用している場合、私はあなたがChromeのHTMLページ上の画像のURL、を見れば、それは実際にある Content-Type: image/gif

を得るしかしAccept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Chromeは、ヘッダーは次のようになり受け入れます

webpはgifの代替フォーマットですが、ブラウザがサポートしている場合はgifの代わりに提供されると思われます。

TwilioがWeb形式の画像をサポートしている場合は、代わりにその画像を使用できます。

Gifyもmp4形式を使用しているようですが、gifとしてブランド化されているように見えますが、実際にHTMLやWebPコンテンツを受け入れることができるクライアントにはgifを提供しません。

+0

hh。どのようにしてこの例のようになりますか(https://www.twilio.com/blog/2014/10/send-daily-animated-gifs-using-firebase-giphy-node-js-and-twilio-mms.html )作品ですか? (ヘッダー:サインアップ時にGIFを送信する)。私はこれがnode.jsでRubyではないことを知っていますが、リンクは同じように動作すると思います。 – landen

+0

gifyは、これが書かれて以来、コンテンツの提供方法を​​変更した可能性があります。 – Kris

+0

'curl -I http:// media.giphy.com/media/zl170rmVMCpEY/giphy.gif'は、Content-Typeを' image/gif 'として表示します。 – Kris

関連する問題