TwilioとRailsで作る、電話でテキスト読み上げアプリAndroidアプリちょい足し開発レシピ(2)(2/5 ページ)

» 2013年05月24日 16時30分 公開
[諏訪悠紀,クラスメソッド]

Twilioクライアントアプリを作るには

 まずはTwilioクライアントアプリのアーキテクチャを理解しましょう。Twilioクライアントアプリで電話の発着信をするには、以下の手順が必要になります。

  1. クライアントアプリがアプリ用のサーバからケイパビリティトークンを取得
  2. クライアントアプリがTwilioに発着信のコネクションを登録
  3. Twilioがアプリ用のサーバからTwiMLを取得し、TwiMLに記載された動作を実行
Twilioクライアントアプリのアーキテクチャ

【1】ケイパビリティトークンの取得

 ケイパビリティトークンはアプリ用のサーバで生成するトークンで、クライアントアプリがTwilioにデバイス登録するときに使用します。この仕組みを使うことでクライアントサイドにアプリの認証トークンを明かすことなく、Twilioサービスに安全にアクセスできるようになります。

【2】発着信のコネクションを登録

 クライアントアプリでは、Twilioに発着信のコネクションを登録する処理を実装します。登録するときにはアプリ用のサーバから取得したケイパビリティトークンを使用します。

【3】サーバからTwiMLを取得

 Twilioは発着信のコネクションがあると、アプリ用のサーバにTwiMLを取得しにいきます。

 TwiMLはTwilioに電話の発信などの動作を指示するためのXML文書です。TwiMLの詳細は下記のドキュメントを参照してください。

 アプリ用のサーバにはTwilioが呼び出すTwiMLを取得するためのAPIを用意しておきます。このようなサーバを、Twilioでは「TwiMLアプリ」と呼んでいます。

 Twilioクライアントアプリを作るにはTwilioへのTwiMLアプリ登録、Twilioクライアントアプリの実装、アプリ用のサーバの実装が必要になります。それぞれの手順について、次項から解説していきます。

TwiMLアプリを登録する

 まずは、TwilioにTwiMLアプリを登録します。以下のURLにアクセスしてください。

 この画面ではTwiMLアプリの一覧、登録、変更、削除などが行えます。「TwiMLAppを作成する」をクリックします。

TwiMLアプリ管理画面

 TwiMLアプリの新規登録画面が表示されるので、「フレンドリーネーム」に「HelloTwilio」と入力し、一番下の「変更を保存する」ボタンをクリックします。

TwiMLアプリ新規登録画面

 これでTwiMLアプリの登録が完了しました。「Request URL」はTwilioが呼び出すTwiMLを提供するAPIですが、まだサーバサイドを実装していませんので、後で設定します。

サーバサイドをRuby on Railsで実装してHerokuにデプロイする準備

 ここからは、サーバサイドの実装について解説します。この記事では、Ruby on Railsで実装し、Herokuにデプロイします。

 本稿では、Ruby on Railsの開発環境の構築方法の解説は割愛します。なおRubyのバージョンは2.0.0-p195、Railsのバージョンは3.2.13で実装しています。

 HerokuはRuby on Railsアプリを簡単にデプロイできるPaaSです。まだ登録されていない方は以下のURLより登録を行ってください。

Railsのひな型を作成

 まずは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でライブラリを追加

 次に、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.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。