この問題を抱えている可能性のある他の人にとって、この質問からのこのサンプルアプリケーションは非常に役立つことがわかりました。あなたがする必要があるのは:
- アプリケーションの特定のコントローラーに投稿するように Twilio 番号の SMS URL をセットアップします (例: 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 はオブジェクトを保存します。次に、ユーザーに応答したい TWIML を Twilio に返すだけです。そのような:
app/views/twilio/new_contact.xml.erb
<Response>
<Sms>We added a new contact for you.</Sms>
</Response>