まずはTwilioクライアントアプリのアーキテクチャを理解しましょう。Twilioクライアントアプリで電話の発着信をするには、以下の手順が必要になります。
ケイパビリティトークンはアプリ用のサーバで生成するトークンで、クライアントアプリがTwilioにデバイス登録するときに使用します。この仕組みを使うことでクライアントサイドにアプリの認証トークンを明かすことなく、Twilioサービスに安全にアクセスできるようになります。
クライアントアプリでは、Twilioに発着信のコネクションを登録する処理を実装します。登録するときにはアプリ用のサーバから取得したケイパビリティトークンを使用します。
Twilioは発着信のコネクションがあると、アプリ用のサーバにTwiMLを取得しにいきます。
TwiMLはTwilioに電話の発信などの動作を指示するためのXML文書です。TwiMLの詳細は下記のドキュメントを参照してください。
アプリ用のサーバにはTwilioが呼び出すTwiMLを取得するためのAPIを用意しておきます。このようなサーバを、Twilioでは「TwiMLアプリ」と呼んでいます。
Twilioクライアントアプリを作るにはTwilioへのTwiMLアプリ登録、Twilioクライアントアプリの実装、アプリ用のサーバの実装が必要になります。それぞれの手順について、次項から解説していきます。
まずは、TwilioにTwiMLアプリを登録します。以下のURLにアクセスしてください。
この画面ではTwiMLアプリの一覧、登録、変更、削除などが行えます。「TwiMLAppを作成する」をクリックします。
TwiMLアプリの新規登録画面が表示されるので、「フレンドリーネーム」に「HelloTwilio」と入力し、一番下の「変更を保存する」ボタンをクリックします。
これでTwiMLアプリの登録が完了しました。「Request URL」はTwilioが呼び出すTwiMLを提供するAPIですが、まだサーバサイドを実装していませんので、後で設定します。
ここからは、サーバサイドの実装について解説します。この記事では、Ruby on Railsで実装し、Herokuにデプロイします。
本稿では、Ruby on Railsの開発環境の構築方法の解説は割愛します。なおRubyのバージョンは2.0.0-p195、Railsのバージョンは3.2.13で実装しています。
HerokuはRuby on Railsアプリを簡単にデプロイできるPaaSです。まだ登録されていない方は以下のURLより登録を行ってください。
まずはRuby on Railsアプリのひな型を作成します。コンソールで以下のコマンドを順番に実行してください。
mkdir hello-twilio && cd hello-twilio bundle init vim Gemfile # gem 'rails' のコメントアウトを外す bundle install --path vendor/bundle --without production bundle exec rails new . --skip-bundle
これでアプリのひな型ができました。
次に、Gemfileを以下のように修正します。Twilioの公式ライブラリである「twilio-ruby」とHerokuへのデプロイに必要なライブラリを追加します。
source 'https://rubygems.org' ruby '2.0.0' gem 'rails', '3.2.13' gem 'twilio-ruby' gem 'jquery-rails' group :development, :test do gem 'sqlite3' end group :production do gem 'pg' gem 'therubyracer-heroku' gem 'thin' end group :assets do gem 'uglifier', '>= 1.0.3' end
保存したら以下のコマンドを実行し、ライブラリをインストールします。
bundle install
これでライブラリのインストールが完了しました。
Copyright © ITmedia, Inc. All Rights Reserved.