TwilioとRailsで作る、電話でテキスト読み上げアプリ:Androidアプリちょい足し開発レシピ(2)(2/5 ページ)
AndroidアプリにさまざまなWebサービスやライブラリを「ちょい足し」することで魅力的なアプリに大変身させる方法を紹介する連載。クラウド電話APIサービスTwilioを使った「自動音声読み上げツール」の作り方を紹介。サーバサイドはRuby on Railsで作成します。
Twilioクライアントアプリを作るには
まずはTwilioクライアントアプリのアーキテクチャを理解しましょう。Twilioクライアントアプリで電話の発着信をするには、以下の手順が必要になります。
- クライアントアプリがアプリ用のサーバからケイパビリティトークンを取得
- クライアントアプリがTwilioに発着信のコネクションを登録
- Twilioがアプリ用のサーバからTwiMLを取得し、TwiMLに記載された動作を実行
【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アプリの新規登録画面が表示されるので、「フレンドリーネーム」に「HelloTwilio」と入力し、一番下の「変更を保存する」ボタンをクリックします。
これで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.