Twilioのマークアップ言語TwiMLを無料ホスティングするサービス「twimlbin」をRubyから利用する「twilio-twimlbin」を公開しました
Twilioを利用して電話を掛ける際、外部からアクセスできるXMLのURLを指定する必要があります。
それはつまり外部公開サーバの用意が必要となるので、利用の敷居が高いと思われがちです。
そこで、Twilioが公式に提供する「twimletsというサービスがあります。
GETパラメータのみ対応しているため、文字列の長さが限定されるという問題がありました。
さて、Pastebinという、GitHubのgist的なサービスをご存じでしょうか。
これのTwilio向けサービスとも言える「Twimlbin.com」を見つけたので、
早速プログラムから扱えるようRubyでラッパークラスを作りGem化しましたので紹介します。
更新履歴
- 2013年7月8日 twilio-twimlbin v0.0.3リリースに伴いプログラムサンプルを更新
- 2013年9月3日 twimlbin.comの仕様変更による不具合を修正し、v0.0.4をリリース
概要
Twimlbin.comの機能をラッパーしたクラスです。
自分のサーバを持つこと無く、Twilioを用いて荷電する際の挙動を制御するTwiMLをPOSTすると、
それを公開するための専用のURLが付与されるという物です。
インストール方法
http://rubygems.org/gems/twilio-twimlbin を使います。
$ sudo gem install twilio-twimlbin
利用方法
以下のように外部から開けるURLを生成することが出来ます。
事前準備
何らかの方法でtwilio-rubyを入れます。
gem install twilio-ruby
- Gemfileに書いたうえで
bundle install --path=vendor/bundle
rubyコード
以下コードを用意し、実行してみましょう。
# -*- encoding: utf-8 -*- require 'twilio-twimlbin' require 'twilio-ruby' response = Twilio::TwiML::Response.new do |r| r.Say '隣の客はよく柿食う客だ。', :voice => 'woman', :language => 'ja-jp' end twiml = Twimlbin.new twiml.create(response.text) puts twiml.external_url
URLの内容を確認
表示されたURLをブラウザで開いて表示できることを確認出来たら、 次はコマンドラインから取得してみましょう。
$ curl -A "TwilioProxy" http://twimlbin.com/external/4db02ba3abeb2156 <?xml version="1.0" encoding="UTF-8"?><Response><Say voice="woman" language="ja-jp">隣の客はよく柿食う客だ。</Say></Response>
簡単ですね。