2016-09-12 3 views
1

Twilio와 twilio-ruby 을 Rails 앱과 통합했습니다. 기본적인 SMS 및 음성 기능이 예상대로 작동하지만 지금은 기능을 확장하려고합니다. 내 컨트롤러에서 TwiML을 동적으로 생성하고, 어딘가에 (로컬 또는 서비스에 저장) Twilio를이 XML에 액세스하도록하고 싶습니다. 예를 들어 고객이 내 앱을 통해 주문을하면 TwiML이 생성되어 저장되고 Twilio는 새로운 주문 데이터로 내 공급자에게 음성 전화를 겁니다. 동시 주문을 염두에두면 솔루션이 어떻게 생겼을까요? TwiML/XML을 저장하고 Twilio에 액세스하는 데 가장 좋은 솔루션은 무엇입니까? 고맙습니다.레일즈 애플리케이션에서 TwiML을 어떻게 동적으로 생성합니까?

+0

통화 중에 동적으로 TwiML을 생성하는 대신 일시적으로 저장해야하는 이유가 있습니까? –

답변

0

호출 중에 동적으로 TwiML을 생성하는 것이 선호되는 방법 인 것처럼 보입니다.

우리는 이름으로 발신자를 맞이 워드 프로세서에서 동적으로 TwimL 컨텐츠를 생성의 예 : 대신 응용 프로그램이 들어오는 메시지 본문을 분석해야 할 것 people 배열의

require 'rubygems' 
require 'sinatra' 
require 'twilio-ruby' 

get '/hello-monkey' do 
    people = { 
    '+14158675309' => 'Curious George', 
    '+14158675310' => 'Boots', 
    '+14158675311' => 'Virgil', 
    '+14158675312' => 'Marcel', 
    } 
    name = people[params['From']] || 'Monkey' 
    Twilio::TwiML::Response.new do |r| 
    r.Say "Hello #{name}" 
    end.text 
end 

https://www.twilio.com/docs/quickstart/ruby/twiml/greet-caller-by-name#twiml-quickstartrb (있는 경우 SMS를 사용하여) 주문한 다음 공급 업체에 적절한 전화를 겁니다.

그러나 실제로 사용하는 경우 호스팅 된 TwiML을 만들어야 할 경우 TwiML Bins in the Twilio Console에서 곧 보간으로이 작업을 수행 할 수 있습니다.

curl -X POST api.twilio.com/..../Calls -d 'Url=https://hander.twilio.com/EHxxx?message=hello+world' -u Cxxx:yyyy 

그리고 당신의 TwiML 빈 필요한 TwiML 포함됩니다 :

<Response><Say>{{message}}</Say></Response>

이 방법, 당신은 할 필요가 없습니다 것입니다 당신이 그런 짓을 할 수있을 것입니다 의미

2 건의 전화가 걸리고 수천 (또는 그 이상)의 여분의 쓰레기통이 쌓이지 않아 유지 보수가 어렵습니다.

+1

의견을 주셔서 감사합니다. 불행히도 전화 통화 중 생성하는 것은 구현에 맞지 않습니다. 나는 TwiML을 Amazon S3에 작성한 다음 Twilio에 액세스하도록 결정했습니다. 모든 것이 현재 설계대로 작동합니다. 감사. –

+0

어제 내가 어제 게시 한 후 TwiML Bins으로이 작업을 수행 할 수있는 방법을 생각하기 시작했습니다 (예 : http://stackoverflow.com/questions/24494782/is-there-a-way-to-programmatically-create-a). -twimlbin). 콘솔에서 Twilio가 호스팅하고 있으며, 팀과 함께 보완 추가 계획을 확인했습니다. 미래를위한 조언으로 내 대답을 업데이트하겠습니다. Amazon S3를 사용하여 귀하의 솔루션을 귀하의 요구에 맞기 때문에 기쁩니다. 나는 그것을 생각하지 않았다. –

관련 문제