TwilioのTwilML libraryをCakePHPで使ってみました。サンプルで作ったものは再配達サービスです。
PHPの場合はクラスメソッドさんの「PHP×Twilio×再配達サービス#1」を見てください。
この記事ではアカウントの作り方などの説明はしていませんので、
Twilio が何なのか分からない場合や、使ったことがないという方は、
Twilioのサイトにある「ゼロからはじめるぜ!Twilio」という連載を最初に見てください。
環境
CakePHP2.4.×
ライブラリを読み込む
CakePHPのapp内にあるVendorフォルダにTwilioというフォルダを作成します。
このフォルダにライブラリを入れます。
ライブラリは以下からダウンロード、解凍してください。
https://jp.twilio.com/docs/libraries
解凍したフォルダ内のServicesフォルダをを上記でVendorに作成したTwilioフォルダにコピーします。
アプリケーション/app/Vendor/Twilio/Services/ファイルやフォルダ
続いて適当にControllerを作成し、ライブラリを読み込みます。
再配達サービスを作る
再配達サービスの最初に流れるメッセージを設定します。
Services_Twilio_TwimlクラスのTwiMLタグに対応したメソッドを呼び出し、もろもろ設定します。
今回、Viewは必要ありませんのでautoRenderをfalseにします。
また、レスポンスとして返すのはTwiMLというxmlですので、Content-Typeをtext/xmlにし、
もろもろ設定したものをbodyにセットして、そのままreturnします。
この時点で対象のURLにブラウザでアクセスすると、以下のようなTwiMLが表示されます。
Twilioで実際に電話をかけるまえにブラウザからアクセスして、PHPの構文が正しいか、
TwiMLが間違っていないかを確認するようにした方がよいでしょう。
次に、お問い合わせ番号を入力された後に実行されるfuncitonです。
お届けの時間を指定させ、間違っていれば再入力させる処理をします。
全体ではこんな感じ。
特にCakePHPを使う必要はないかもしれませんが、それにしてもTwilioは簡単で面白いかも!
あとは開発してる時の電話代だね。もうね。develop番号とか作って無料にしてくれればいいのに。