2016-09-12 6 views
1

Twilioからtwilio-ruby まで私のRailsアプリケーションと統合しました。基本的なSMSと音声機能は期待通りに機能していますが、今では機能を拡張したいと考えています。私は自分のコントローラにTwiMLを動的に生成し、どこかに(ローカルまたはサービスに)保存し、TwilioにこのXMLにアクセスさせたいと考えています。たとえば、顧客が自分のアプリで注文し、TwiMLが生成されて保存された後、Twilioは新しい注文データで私のサプライヤに音声通話を行います。並行した注文を念頭に置いて、このソリューションはどのように見えますか? TwiML/XMLを保存してTwilioにアクセスさせるための最良の解決策は何ですか?ありがとうございました。Railsアプリケーションから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

コメントありがとうございます。残念ながら、コール中に生成されたのは私の実装に合っていませんでした。私はAmazon S3にTwiMLを書いてTwilioにアクセスさせることにしました。すべてが現在設計どおりに動作しています。ありがとう。 –

+0

ああ、私が昨日投稿した後、TwiML Binsでこれを行う方法を考え始めました(つまり、http://stackoverflow.com/questions/24494782/is-there-a-way-to-programmatically-create-a -twimlbin)。これらは現在、コンソールのTwilioによってホストされており、チームと一緒に補間の追加を計画していることを確認しました。私は将来のためのヒントで私の答えを更新します。 Amazon S3であなたのソリューションがあなたのニーズに合っているのはうれしいですが。私はそれを考えなかった。 –