我在使用Heroku部署的Sinatra应用程序上使用Twilio时遇到了一个奇怪的问题。我有一张开放票,但希望得到社区对问题的意见。当我为数据库中的所有联系人创建当天的第一个MMS时,我收到此错误:
ERROR 12300 Twilio无法处理内容类型 提供的URL。有关有效内容类型的详细信息,请参阅Twilio Markup XML Documentation。
我在此代码发送的55条消息中有30条得到此消息。但是,如果我再次运行相同的提交,通过相同的方法,我得到0错误。一切都过去了。我非常困惑。我唯一能想到的是Twilio在初始请求中检索IMG_URL时遇到问题,可能会将其缓存以备将来使用。我只是在这里猜测。其他人在Heroku上使用Twilio时有类似的问题吗?
以下是我用来发送的代码:
#Twilio API Post from App
post '/send' do
protected!
#Save Devotional to DB
@devotional = Devotional.create(from: params[:from],subject: params[:subject], body: params[:body])
#Send Saved Devotional to SMS Twilio
Contact.all.each do |contact|
client.messages.create(
from: TWILIO_NUMBER,
to: contact.phone_number,
body: @devotional.body.to_s,
media_url: 'http://devotionalbroadcast.com/images/daily-broadcast-header.png'
)
end
redirect '/'
end
HTTP AUTH可以与它有什么关系吗?我正在使用Sinatra的简单Auth,但我不认为这会导致问题。
答案 0 :(得分:0)
Twilio开发者传道者在这里。
我尝试从您的示例中加载URL,响应标头为:
Date: Mon, 26 Feb 2018 05:57:03 GMT
Content-Length: 0
X-Content-Type-Options: nosniff
Server: thin
Via: HTTP/1.1 proxy10702
Keep-Alive: 60
没有Content-Type
标题告诉Twilio内容是什么。我会尝试确保您的服务器使用正确的MIME类型发送图像,在这种情况下image/png
,看看是否能解决问题。
让我知道这是否有帮助。