Twilio发布到url与params [:text_response]和params [:phone_number]

时间:2014-03-06 07:09:09

标签: ruby-on-rails twilio twiml

我正在使用ruby 2.0.0和Rails 4.0。

我正在通过我的rails应用程序向我的最终用户发送短信。

当他们回复时,我想将他们重定向到api电话:

www.myapp.com/api/verify_text_response

在该API调用中,我想查看从最终用户发送到我的URL的文本消息是什么。理想情况下,我会收到一个“text_response”的参数,然后我可以按照自己的意愿行事。

如何将我的end_user的回复重定向到上面的网址,并捕获它来自的电话号码以及我的参数中发送给我的消息?如果无法做到这一点,我如何使用TwiML做类似的事情呢?

结束目标

对于它的价值,这就是我想要实现的目标:

  1. 我发送短信 - “Would you like to subscribe?
  2. 最终用户回复“Yes”或“No”。
  3. 我将subscribed模型上的subscription属性更改为true或false。
  4. 我发送了另一条短信,上面写着“You are subscribed.”或“You are not subscribed.”。
  5. 项目#3和#4基于用户在第2项中回答“是”或“否”。

1 个答案:

答案 0 :(得分:1)

Ruby的twilio指南here是最有用的文档。他们建议在您的Rails应用程序中使用Twilio gem,方法是将twilio-ruby gem添加到您的Gemfile中。

您需要做的就是将以下代码添加到您的控制器操作之一(由www.myapp.com/api/verify_text_response路由到的操作:

def receive_text
  # Not exactly sure this is the right parameter, but it's easy to test
  sender_message = params[:Body]

  response = if (sender_message == "Yes")
    "You are subscribed."
  else
    "You are not subscribed."
  end

  twiml = Twilio::TwiML::Response.new do |r|
    r.Message(response)
  end
  twiml.text
end

要使您的Rails应用程序可供Twilio访问,请按照this page上的说明进行操作:

  

将服务器的网址复制并粘贴到某个号码的“短信”网址中   在Twilio帐户的Numbers页面上。在页面上   编号,将方法从“POST”更改为“GET”。

我不完全确定从文档中查看哪个参数保存了用户的响应(我认为它可能是params[:Body]),但最好的方法就是打印出控制器的参数当您向Twilio号码发送短信时收到。