今回は、電話を受けたらボタンを押すように促し、押されたボタンごとにメッセージを流してみようと思います。
Gather 動詞
押されたボタンの収集は Gather 動詞を使います。ドキュメント: https://jp.twilio.com/docs/api/twiml/gather
ドキュメントのサンプルそのままですが、以下のように使用します。
1 2 3 4 5 6 |
<?xml version="1.0" encoding="UTF-8"?> <Response> <Gather timeout="10" finishOnKey="*"> <Say>Please enter your pin number and then press star.</Say> </Gather> </Response> |
発信者がボタンを押すと押した数値をパラメーターに GET もしくは POST (method で指定)リクエストを送信します。
action 属性で送信先 URL の指定もできます。
サーバー
今回から TwiML および アプリケーションをサーバーに配置したいと思います。なんでも良いのですが、私は Google App Engine(以下、GAE) を使うことにしました。
GAE のセットアップなどは省略します。
アプリケーション
前回、前々回では TwiML を直接指定し処理を指示していましたが、今回はアプリケーションという形で構築をしていきます。今回は、GAE + PHP で作りました。
PHP のソースコードは以下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php require 'twilio-php/Services/Twilio.php' ; $response = new Services_Twilio_Twiml(); if ( isset( $_REQUEST [ 'Digits' ]) ) { $input = $_REQUEST [ 'Digits' ]; switch ( $input ) { case '9' : $response ->say( 'さようなら' , array ( 'language' => 'ja-jp' )); break ; default : $gather = $response ->gather( array ( 'numDigits' => 1, 'timeout' => '10' )); $gather ->say( $input . 'を押したな' , array ( 'language' => 'ja-jp' )); break ; } } else { $gather = $response ->gather( array ( 'numDigits' => 1, 'timeout' => '10' )); $gather ->say( 'なんかボタン押して。' , array ( 'language' => 'ja-jp' )); } print $response ; |
require 'twilio-php/Services/Twilio.php';こちらのファイルは、Twilio のライブラリーです。本家サイトよりダウンロードしたものを、アップロードしています。
Twilio Docs - Php Install
https://github.com/twilio/twilio-php/archive/master.zip
コードは 「ゼロからはじめるぜ! Twilio - Twilio for KDDI Web Communications」を参考に…というかほぼそのまんまです。
上記コードの else 節の部分が電話をかけた時に最初に通る部分です。
if( isset($_REQUEST['Digits']) ) { ... } else { // ここ }そこで、Gather が処理され Digits パラメータ付きで同じ URLが叩かれます。
すると、今度は if 節の部分が実行されます。
こちらの PHP を実行できるように GAE の app.yaml を編集してアップロードして下さい。
これで、アプリケーション側の設定が終わりです。
アプリケーションの登録
アプリケーションを Twilio に登録します。Twilio のダッシュボードから「ツール」→「TWIML APPS」を選択します。すると、下図のような画面が出てくるので「TwiMLAppを作成する」ボタンを押します。
アプリケーション作成ページが開くので、フレンドリーネームと Request URL を設定します。
今回は音声通話に Request URL (GAE の URL)を記入します。
記入したら、保存ボタンを押して下さい。
次に、電話番号にこのアプリケーションを割り当てます。
「電話番号」から電話番号を選択し、音声通話のところの「Configure with」をアプリケーションに設定し、コンボボックスから先ほど作成したアプリケーションを選択して下さい。
これで Twilio 側の設定も終わりです。
電話かけて、ボタン操作に反応することを確認しましょう。
最後に
今回の内容は、ゼロからはじめるぜ! Twilio の以下の回に相当する内容です。ゼロからはじめるぜ! Twilio - 第3回 - Twilio for KDDI Web Communications
ゼロからはじめるぜ! Twilio - 第4回 - Twilio for KDDI Web Communications
ゼロからはじめるぜ! Twilio - 第5回 - Twilio for KDDI Web Communications
ゼロからはじめるぜ! Twilio - 第6回 - Twilio for KDDI Web Communications
ゼロからはじめるぜ! Twilio - 第4回 - Twilio for KDDI Web Communications
ゼロからはじめるぜ! Twilio - 第5回 - Twilio for KDDI Web Communications
ゼロからはじめるぜ! Twilio - 第6回 - Twilio for KDDI Web Communications
また、ソースコード等は github で公開しています。
https://github.com/srz-zumix/twilio
0 件のコメント:
コメントを投稿