- 2013-12-18 (水) 11:00
- Advent Calendar 2013 | PHP | Webサービス
Shin x blog Advent Calendar 2013 の 18 日目です。
ChatWork API のプレビュートークンを頂いたので、早速使ってみました。
今回作ったのは、電話をかけて音声で伝えたい人と、電話はかけて欲しくない、チャットで要件伝えて下さい、という人を繋ぐものです。
Twilio と ChatWork を使って留守番電話
これは、Twilio と ChatWork を使い、電話がかかってきたら、チャットで着信を知り、録音された音声が聞けるというものです。いわば留守番電話をチャットから聞くという感じですね。
全体の流れは下記の図になります。
ソースコードは GitHub にて公開しています。
shin1x1/twilio-chatwork-voice-message
Twilio との連携
まず、かかってきた電話を Twilio で受けます。Twilio では、着信した電話番号に対して、あらかじめ登録した URL へ HTTP リクエストを投げるので、これをこのアプリケーションで受けます。
下記が Twilio からのリクエストを処理するコードです。Twilio へは、TwiML という XML を返すことで、電話に対する操作を指定します。このコードでは、音声メッセージを流して、録音を行うことを Twilio へ指示しています。また、録音が完了すると、recoreder.php へリクエストを投げるようにしています。
ChatWork との連携
Twilio での録音が完了すると下記のコードへリクエストが来ます。このリクエストでは、録音された音声ファイルの URL が送信されてくるので、これを ChatWork API を使って、チャットメッセージとして送信します。
動かしてみる
実際に動かしてみます。Twilio で取得した電話番号に電話をかけます。
録音を促す音声が流れるので、メッセージを電話で話します。伝えたい内容を言い終わったら、#
を押して下さい。
すると、着信があったことを伝えるチャットメッセージが、ChatWork へ送信されます。チャットメッセージには、URL が付いているので、これをクリックすると、録音された音声を聞くことができます。
さいごに
Twilio も ChatWork も API が公開されており、連携も簡単でした。
これならば、電話で要件を伝えたい人は電話をかけられ、聞く側は ChatWork で着信を知って、要件を音声で聞くことができます。電話を置かない会社さんでも電話番号を公開できますね;-p
- Newer: 個人事業から法人化した理由
- Older: レゴブロック型プログラミング