我需要一些帮助来设置在Sinatra上运行的Twilio SMS广播应用程序。他们构建基于本教程:在 Ruby 中发送群发短信广播
当我进行HTTP POST时,我在运行Sinatra&Ngrok时会在终端中收到此消息。
NameError - uninitialized constant Twilio::TwiML::Response
Did you mean? Twilio::Response:
broadcast.rb:75:in `send_to_me'
broadcast.rb:53:in `block in <main>'
它有问题的代码是:
def send_to_contacts(body, media_url = nil)
response = Twilio::TwiML::Response.new do |r|
contacts_numbers.each do |num|
r.Message to: num do |msg|
msg.Body body
msg.Media media_url unless media_url.nil?
end
end
end
response.text
end
def send_to_me(from, body, media_url = nil)
name = contact_name(from)
body = "#{name} (#{from}):n#{body}"
response = Twilio::TwiML::Response.new do |r|
r.Message to: MY_NUMBER do |msg|
msg.Body body
msg.Media media_url unless media_url.nil?
end
end
response.text
end
我注意到大多数新的 Twilio walkthrus 现在都在使用 API Auths & Tokens
@client = Twilio::REST::Client.new account_sid, auth_token
这是我需要实施的东西吗?关于如何将这两种方法迁移到该类型的格式并保留我的功能的任何指导?
谢谢!
更新:
Twilio::TwiML::Response 已被 Twilio::TwiML::VoiceResponse & Twilio::TwiML::MessagingResponse 取代。当我将代码更改为以下内容时,它起作用了:
def send_to_contacts(body, media_url = nil)
response = Twilio::TwiML::MessagingResponse.new do |r|
contacts_numbers.each do |num|
r.message to: num do |msg|
msg.body body
msg.media media_url unless media_url.nil?
end
end
end
puts response
end
def send_to_me(from, body, media_url = nil)
name = contact_name(from)
body = "#{name} (#{from}):n#{body}"
response = Twilio::TwiML::MessagingResponse.new do |r|
r.message to: MY_NUMBER do |msg|
msg.body body
msg.media media_url unless media_url.nil?
end
end
puts response
end