1

自述文件中对 SMS的唯一引用是关于发送 SMS 消息。

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

我想知道 twilio-ruby gem 是否提供对 SMS 响应的可见性?我想做一些关键字响应逻辑,例如他们在 PHP 中给出的示例

4

2 回答 2

2

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

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

类 TwilioController < ApplicationController

  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。如:

应用程序/views/twilio/new_contact.xml.erb

<Response>
  <Sms>We added a new contact for you.</Sms>
</Response>
于 2012-11-24T23:41:37.423 回答
1

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

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

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

于 2012-11-15T05:17:38.843 回答