twilio-ruby 宝石是否处理短信响应



述文件中对短信的唯一引用是关于发送短信。

# send an sms
@client.account.sms.messages.create(
  :from => '+14159341234',
  :to => '+16105557069',
  :body => 'Hey there!'
)

我想知道 twilio-ruby 宝石是否提供短信响应的可见性?我想做一些关键字响应逻辑,就像他们在 PHP 中给出的示例一样。

对于可能遇到此问题的其他人,我发现这个问题中的此示例应用程序非常有用。您需要做的是:

  1. 设置您的 Twilio 号码短信 URL 以发布到应用程序中的某个控制器(例如,myapp.com/twilio/process-sms)
  2. 添加路由以将该 URL 与 Twilio 控制器中的正确操作匹配
  3. 编写一些简单的逻辑,如下所示,以根据自定义业务逻辑处理对号码的响应/消息
  4. 如有必要,请使用如下所示的 .xml.erb 文件进行响应

类 TwilioController

  def process_sms
    @city = params[:FromCity].capitalize
    @state = params[:FromState]
    @from = params[:From]
    u = User.find_by_phone_number(@from)
    @user = u.name
    b = params[:Body]
if b.downcase.include?("question")
    @type = "Question"
    @question = u.questions.build(:description => b)
    @question.save!
    render 'new_question.xml.erb', :content_type => 'text/xml'
elsif b.downcase.include?("contact")
    @type = "Contact"
    @contact = u.contacts.build(:name => b)
    @contact.save!
    render 'new_contact.xml.erb', :content_type => 'text/xml'
else
    @type = "Not sure"
    render 'not_sure.xml.erb', :content_type => 'text/xml'
end

.build 将创建对象,.save 将保存对象。然后,您只需将要响应用户的TWIML返回到Twilio。如:

app/views/twilio/new_contact.xml.erb

<Response>
  <Sms>We added a new contact for you.</Sms>
</Response>

当您的 Twilio 号码收到短信时,Twilio 会向您的服务器发出 HTTP 请求。您可以通过使用 XML 响应请求来响应传入的短信,如下所示:

<Response>
    <Sms>This is my response</Sms>
</Response>

您可以自己生成 XML 响应,也可以帮助程序库包含可帮助您将 XML 返回到客户端的方法。我建议看一下Twilio Ruby SMS快速入门的简单示例,然后从那里开始。

最新更新