今回は、電話を受けたらボタンを押すように促し、押されたボタンごとにメッセージを流してみようと思います。
Gather 動詞
押されたボタンの収集は Gather 動詞を使います。ドキュメント: https://jp.twilio.com/docs/api/twiml/gather
ドキュメントのサンプルそのままですが、以下のように使用します。
<?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 のソースコードは以下
<?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 件のコメント:
コメントを投稿