Twilio短信不与Rails 4合作



我遵循的说明,

https://www.twilio.com/blog/2016/04/receive-and-reply-to-sms-n-rails.html,

尝试在Rails 4.0中发送SMS。我有一个简单的导轨控制器的试用帐户,如下所示

class MessagesController < ApplicationController
  skip_before_filter :verify_authenticity_token
  # skip_before_filter :authenticate_user!, :only => "reply"
  def reply
    message_body = params["Body"]
    from_number = params["From"]
    boot_twilio
    sms = @client.messages.create(
      from: Rails.application.secrets.twilio_number,
      to: from_number,
      body: "Hello there, thanks for texting me. Your number is #{from_number}."
    )
  end
  private
  def boot_twilio
    account_sid = Rails.application.secrets.twilio_sid
    auth_token = Rails.application.secrets.twilio_token
    @client = Twilio::REST::Client.new account_sid, auth_token
  end
end

在myAppname/config/secrets.ym中,我定义了SID和令牌。根据教程,我正在使用Ngrok将我的应用程序暴露于世界。如图所示,我已将Ngrok的URL输入到Twilio的配置中。我已经通过将其复制到浏览器的URL中来验证了URL NGROK给我的。当我这样做时,它会在主页上打开我的Rails应用程序。

问题在于,Twilio永远不会将SMS路由到我的Rails应用程序。我没有在我的回复动作中回复短信,而是"从您的Twilio试用帐户发送 - 从Twilio出发!"。这是我什至在编写Rails应用程序之前得到的Twilio响应。我应该提到,我有

reply_messages POST /messages/reply(.:format) messages#reply

在我的路由表中

twilio开发人员在这里。

问题是您在Twilio控制台中输入Ngrok URL的位置。实际上,您将其输入到框中以获取故障转移URL。如果您再次看一看,您会发现当一条消息传来时,您正在使用称为" SMS入门Twiml"的Twiml bin,这就是为什么您仍在收到教程响应的原因。

您需要将左下角从" twiml"更改为" webhook",然后在出现的输入中输入URL。

在第二点,您正在使用REST API响应传入消息,但是您可以使用Twiml进行此操作。只需将您的操作更新为:

  def reply
    from_number = params["From"]
    resp = Twilio::TwiML::Response.new do |r|
      r.Message "Hello there, thanks for texting me. Your number is #{from_number}."
    end 
    render xml: resp.to_xml
  end

让我知道是否有帮助。

最新更新