2012-11-14 2 views

답변

1

Twilio 번호로 SMS를 받으면 Twilio는 서버에 make an HTTP request이됩니다. 이 같은 XML과 요청에 응답하여 수신 SMS에 응답 할 수 있습니다 :

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

당신 자신, 또는 도우미 라이브러리 클라이언트로 XML을 반환 할 수 있도록 방법을 포함하는 XML 응답을 생성 할 수 있습니다. 간단한 예를 들어 Twilio Ruby SMS quickstart을 살펴본 다음 거기에서부터 나가는 것이 좋습니다.

+0

감사합니다 ...하지만이 질문을 처리 할 수있는 보석의 메소드가 있는지에 대한 답변을하지 않습니다. 내가 말한 것을보기 위해 HTTP POST 또는 XML을 직접 파싱하여 사용자의 SMS 응답을 읽어야 할 필요가있는 것 같습니다. 그게 맞습니까? – kwh941

+0

맞습니다. HTTP 게시물을 직접 파싱해야합니다. 당신은 XML을 생성하는 사람입니다 (Twilio에게 답장으로 보낼 내용을 알려주기 위해). –

2

이 문제가있는 사람들은 this example application에서 this question까지 매우 유용하다고 알았습니다. 당신이해야 할 것은 :

  1. 설정하여 Twilio 번호 SMS의 URL은
  2. 가 일치하는 경로를 추가 (예를 들어, myapp.com/twilio/process-sms) 응용 프로그램에서 특정 컨트롤러에 게시 Twilio 컨트롤러의 올바른 동작에 대한 URL
  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로 반환합니다. 같은 :

응용 프로그램/뷰/twilio/new_contact.xml.erb

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

또한 Take par # params [: From]에는 국제 코드가 첨부 된 사용자의 전화 번호가 포함되어 있습니다. "+1 ...." – dbKooper

관련 문제