對於其他可能有此問題的人,我發現this example application from this question非常有用。你需要做的是:
- 設置你的Twilio號短信網址張貼到一定的控制器在您的應用程序(例如,myapp.com/twilio/process-sms)
- 添加到匹配的路由URL在您的Twilio控制器
- 正確的行動寫一些簡單的邏輯類似下面根據您的自定義業務邏輯
- 迴應處理答覆/郵件到您的號,如果需要的話,使用.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將保存對象。然後,您只需返回Twilio TWIML即可對用戶做出響應。如:
應用程序/視圖/ twilio/new_contact.xml.erb
<Response>
<Sms>We added a new contact for you.</Sms>
</Response>
謝謝...但這並不回答關於是否有寶石來處理它的方法。這聽起來像我需要閱讀用戶的SMS響應,通過自己解析HTTP Post或XML來查看所說的內容。是對的嗎? – kwh941
這是正確的,你需要自己解析HTTP POST。你是生成XML的人(告訴Twilio回覆的內容)。 –