NameError - 未初始化的常量 Twilio::TwiML::Response(可能来自旧 API 代码?)

Posted

技术标签:

【中文标题】NameError - 未初始化的常量 Twilio::TwiML::Response(可能来自旧 API 代码?)【英文标题】:NameError - uninitialized constant Twilio::TwiML::Response (Possibly from old API Code?) 【发布时间】:2018-07-02 19:17:19 【问题描述】:

我需要一些帮助来设置在 Sinatra 上运行的 Twilio SMS 广播应用程序。他们基于本教程构建:Send Mass SMS Broadcasts in 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 很遗憾,这不起作用。 【参考方案1】:

更新:

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

【讨论】:

以上是关于NameError - 未初始化的常量 Twilio::TwiML::Response(可能来自旧 API 代码?)的主要内容,如果未能解决你的问题,请参考以下文章

未初始化的常量 Twitter (NameError)

NameError - 未初始化的常量 Sass::Engine:

Mongoid:未初始化的常量(NameError)

NameError 未初始化常量 Model::Object

未初始化的常量 OpenSSL (NameError)

未初始化的常量 ActionDispatch::Session::EncryptedCookieStore (NameError)