電話API Twilioの基本的な使い方を調べてみた
こんにちわ。ラー・カイラムといえば第2艦橋が好きなガノタ市田です。
Developers.ioでは、Twilioのエントリがいくつかありますが、申し込み方法などのアップデートも踏まえ、改めてTwilioの使い方をご紹介したいと思います。
また、次回はCloudWatchによるアラームをTwilioで電話通知してみたいと思いますので、その準備という位置づけのエントリになります。
このエントリの概要
- Twilioとは
- Twilio費用について
- Twilioアカウントの作成
- 電話番号の購入
- 電話アナウンスの仕組み
- 電話アナウンス用ファイルの作成
- S3 Webサイトホスティング設定
- 電話してみる
それでは、早速見ていきたいと思います。
Twilioとは
簡単に言うと、クラウド電話APIという電話サービスになります。このクラウド電話APIとは、Web APIでインターネット上から電話をかけたり、電話を受けたり、録音できたり、SMSを送ったりできるサービスです。
Twilio費用について
Twilio自体の課金詳細については下記をご参照頂ければと思います。
料金 | Twilio for KDDI Web Communications
尚、無料アカウントのままでオリジナルのメッセージ応答を返そうとすると、アップグレードの必要がある旨のメッセージが流れたので、今回は有料アカウントにアップグレードしています。アップグレードの手順もご紹介しようと思います。
費用感
最初にアップグレードすると、2000円/月の請求が発生するので、予めご注意ください。 この2000円の中から使った分が引かれていき、残高がなくなるとサービスが利用できなくなる仕組みになっています。
Twilioアカウントの作成
まずは下記ページにアクセスして無料アカウントを作成します。アカウントの作成は無料です。
必要事項を入力してアカウントを作ります。
ログインすると下記のような管理画面になります。
画面左上にUPGRADE というリンクがあるのでクリックします。
次の画面で決済手段を選択できます。
クレジットカードかPaypalのどちらかを選択して「アカウントをアップグレードする」 をクリックします。
(オートチャージはデフォルトでオンになっているので、必要に応じてオフにしてください)
アップグレードが完了すると完了画面になります。
電話番号の購入
次に電話番号を購入します。国はJapan(+81)をプルダウンから選択して、「検索」 をクリックします。
すると以下のように購入できる番号が出てきますので、今回は「ローカル」の108円 のものを購入します。
確認表示が出たら「Buy This Number」 をクリックします。
先程の管理画面で購入した番号がアクティブ な番号として登録されていればOKです。
電話番号の箇所をクリックすると詳細内容を確認できます。
電話アナウンスの仕組み
電話した時に流れるメッセージファイルを作成する前に、簡単に仕組みを確認してみたいと思います。
詳細画面の「A CALL COMES IN」 にあるURLにアクセスしてみます。
すると下記のようなXMLの内容が見れると思います。
試しに購入した電話番号に電話してみると、上記のSayタグ でくくられたメッセージが機械音声で流れると思います。
仕組みまとめ
基本的な仕組みとしては、下記のようになります。
- 流したいメッセージを記述したXMLファイルを作成
- WebサーバにXMLファイルをアップロード
- アップロードしたファイルのURLを管理画面で指定
- 電話すると上記XMLの内容が流れる
ということで、今回はWebサーバとしてS3を使ってオリジナルメッセージを流してみたいと思います。
電話アナウンス用ファイルの作成
それでは自由にXMLファイルを作成します。今回は下記の内容で作ってみました。
これをmysumple.xml
として保存しました。
<?xml version="1.0" encoding="UTF-8"?> <Response> <Say language="ja-JP" voice="alice">こんにちわ。このメッセージはSスリーに保存されています。</Say> <Pause length="1"/> <Say language="ja-JP" voice="alice">SスリーとはAWSのオブジェクトストレージのことです。</Say> </Response>
S3ウェブホスティング設定
次にWebサーバとなるS3を設定します。AWSの管理画面からバケットを作ります。既存のものを利用する場合は適宜読み替えてください。
今回はtwiliobucket2016
というバケット名にしました。
次にWebホスティング用のバケットポリシーを設定します。
ポリシーは公式ドキュメントのものから適用します。
バケットポリシーの例 - Amazon Simple Storage Service
下記はコピペ用です。「Your Bucket」 の箇所は環境に合わせて修正してください。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AddPerm", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::YourBucket/*" } ] }
ちなみにS3にアクセスしてくるIPはTwilioのシステムからのIPになりますが、Twilio自体AWSを利用しているのでAWSで利用する全レンジのIPがアクセス候補になるようです。
TwilioがアクセスしてくるIPアドレスレンジは何ですか?
次にS3のWebホスティング設定を行います。
次に作成したXMLファイルをアップロードします。アップロード方法はなんでもいいですが、今回は管理画面上でアップロードしました。
アップロードできたらファイルのURLを確認します。
実際に確認したURLにアクセスしてみると、確かにアップロードした内容が見れていると思います。
電話してみる
S3側の準備ができたら、Twilioの管理画面に戻って先程のURL設定をS3のURLに変更します。また、メソッドの指定を「HTTP GET」 に変更します。
この状態で電話をかけると、きちんと「えすすりー」 と発音されたメッセージが流れると思います。
最後に
Twilioの使い方自体はとても簡単なものだったと思います。
次回は、CloudWatchと連携してアラートを電話通知してみたいと思います。
以上になります。