0

我正在使用 ruby​​ 2.0.0 和 Rails 4.0。

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

当他们响应时,我想将他们重定向到 api 调用:

www.myapp.com/api/verify_text_response

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

如何将我的 end_user 的回复重定向到上述 url,并在我的参数中捕获它来自的电话号码以及发送给我的消息?如果这不可能,我如何使用 TwiML 做类似的事情?

最终目标

对于它的价值,这就是我想要完成的事情:

  1. 我发了一条短信——“ Would you like to subscribe?
  2. 最终用户响应“ Yes”或“ No”。
  3. 我将模型subscribed上的属性更改subscription为 true 或 false。
  4. 我发送另一条短信说“ You are subscribed.”或“ You are not subscribed.”。

项目#3 和#4 基于用户在项目#2 中响应“是”或“否”。

4

1 回答 1

1

此处用于 Ruby的 twilio 指南是最有用的文档。他们建议通过将 gem 添加twilio-ruby到 Gemfile 来在 Rails 应用程序中使用 Twilio gem。

您需要做的就是将以下代码添加到控制器的操作之一(路由到的操作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

要使 Twilio 可以访问您的 Rails 应用程序,请按照此页面上的说明进行操作:

将服务器的 URL 复制并粘贴到 Twilio 帐户的号码页面上的号码的“短信”URL。在该号码的页面上,将方法从“POST”更改为“GET”。

通过查看文档,我不确定哪个参数包含用户的响应(我认为可能是params[:Body]),但最好的方法是打印出控制器在您发送文本消息时收到的参数到你的 Twilio 号码。

于 2014-03-06T07:42:32.383 回答