ゼロからはじめるぜ! Twilio – シーズン2 第2回

20140114-01.jpgこんにちわ。ネットワークエンジニアのまさです。
今年は、冬型の気圧配置が平年のより強い傾向で、寒気の影響を受けやすく平均気温が平年並みまたは低い確率が なんと 40% とのことです。
でたよ、気象庁、またこれですよ! ヽ(`Д´#)ノ

夏も「今年の夏は平年より高くなる確率が 50% だ」なんて仰ってましたけど、もうね「どっちかよくわからん」ってハッキリ言い切ればいいのに。
ないしは、自身の歩んできた気象学の名誉に賭けて
「ズバリ、今年は暑くなる。猛暑対策関連の銘柄買っておけ」
「ズバリ、今年は極寒。心してかかれ。これをハズしたら俺は来年、天気から下りる!!」
このくらい言い切ってしまうくらい真剣な予報を出し、自らを奮い立たせるとかね。

はい、では今回より Twilio を触っていきますが、前回紹介した Twimllet Commander Z のインターフェイスを一緒に作っていきます。これを作りながら、Twilio アプリケーションを作る流れや、電話を使った処理の流れを感覚的に掴んでいただきたいなと思っています。

 

Twimllet Commander Z 概要

20140114-02.jpgもう一度おさらいしておきましょう、 Twimllet Commander Z は右図のようなフローで処理が進むアプリケーションです。

  • Twilio 番号に電話をかけボタン操作で分岐する IVR 型のインターフェイス
  • PHP と Perl を使う
  • Perl はデータベースにアクセスする

あれ、Twimllet Commander Z って何だっけ?と思い出せない方は、前回の記事からおさらいしてください。電話をかけてボタン操作で遠くにある尻洗浄便座の噴水を起動させる、というアプリケーションを作るんですよ!! 作るものの全体イメージを忘れてはいけません。

そして、実際には噴射させる装置を別に開発しなければいけないので、今回は「電話で命令を出すインターフェイスだけつくってみる」というのがゴールです。

一方、実際に電話をかける人は以下のような経験をする形になります。

20140114-03.jpgまず、エンドユーザが Twilio 番号に電話をかけます。ここで暗証番号入力を促し、正規なユーザであることを確認します。もし暗証番号が不正であれば「立ち去れ!」といって電話を切ります。

暗証番号があっていればメニューに推移します。プッシュ操作 1 ~ 5、9 に機能を割り当て、それぞれの処理に渡します。
なお、2 では、個別のトイレに対し噴水を発射出来る「Armed モード(武装モード)」の切り替えを行いたいので、さらにトイレ番号を入力させることで On / Off を切り替えられるメニューにします。また、各分岐した機能からメインメニューに戻ってこれる親切設計にしましょう。

ここで、
1 番「各トイレの状態確認」
2 番「Armed モード On / Off」
3 番「Armed モード On のトイレを確認」
においては、データベースからトイレの情報を引っ張ってくる必要がありますし、特に 3 番では、Armed の On / Off をデータベースを更新することで行います。
よって、この 3 つの機能はデータベース操作が絡んできます。これを緑の点線で表しています。

この処理系統をグルーピングしてみます。以下の図を見て下さい。

20140114-04.jpg青は 1 つの PHP スクリプトで実現するもの。緑は 1 つの Perl スクリプトで実現するもの。なんで Perl かという話なのですが、単に私が PHP でデータベース操作をする書き方を知らないからっていう理由です(笑)
PHP でできる人は、ここも PHP でやって頂いて OK です。

多分、これを 1 枚の PHP でまとめて書いたりもできるかもしれませんが、私は結局このように PHP のパートを 3 つに分けました。

  • 最初に暗証番号を照らし合わせるパート
  • メインメニューとそれぞれの機能へ分岐するパート
  • トイレ番号を入力して Armed を切り替えるパート

そして、データベースにアクセスするところでは、元の PHP 側から Perl を外部コマンドとして呼び出し、その戻り値を PHP の中へ取り込みます。

今日はここまでにしておきましょう、次回からはこれらのパートを一緒に作っていきます。
是非お楽しみに!!

前回、予告した通り、ご自身で以下の環境を準備しておいてくださいね。

  • Web サーバ(PHP と Perl が動く環境に)
  • MySQL サーバ(Cent OS 環境なら構築手順もこの後説明するので準備無しでも OK)
  • twilio-php のインストール(PHP 用お助けライブラリ)

PHP 環境と twilio-php のインストールについては、シーズン 1 第 3 回で説明しています。

ちなみに、これからサーバ契約するんだーって方! 今、お得なキャンペーンやってます。当社の各種レンタルサーバをお申込み頂くと、Twilio アカウントをアップグレード(有償版と同じ)した上で、更に 2000 ポイントプレゼントしちゃいます。1 月末までなのでお早めにどうぞ。

■お得なキャンペーン(終了いたしました
/campaign/cpi_cc/

この記事をシェア


最新記事

すべての記事へ