이 문제가있는 사람들은 this example application에서 this question까지 매우 유용하다고 알았습니다. 당신이해야 할 것은 :
- 설정하여 Twilio 번호 SMS의 URL은
- 가 일치하는 경로를 추가 (예를 들어, myapp.com/twilio/process-sms) 응용 프로그램에서 특정 컨트롤러에 게시 Twilio 컨트롤러의 올바른 동작에 대한 URL
- 사용자 정의 비즈니스 로직에 따라 응답/메시지를 사용자의 비즈니스 로직에 따라 처리하려면 다음과 같은 간단한 논리를 작성하십시오.
- .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로 반환합니다. 같은 :
응용 프로그램/뷰/twilio/new_contact.xml.erb
<Response>
<Sms>We added a new contact for you.</Sms>
</Response>
감사합니다 ...하지만이 질문을 처리 할 수있는 보석의 메소드가 있는지에 대한 답변을하지 않습니다. 내가 말한 것을보기 위해 HTTP POST 또는 XML을 직접 파싱하여 사용자의 SMS 응답을 읽어야 할 필요가있는 것 같습니다. 그게 맞습니까? – kwh941
맞습니다. HTTP 게시물을 직접 파싱해야합니다. 당신은 XML을 생성하는 사람입니다 (Twilio에게 답장으로 보낼 내용을 알려주기 위해). –