2017年11月2日にさくらインターネットさんで開催された【KDDIウェブコミュニケーションズ共催】Twilio&sakura.io 体験ハンズオン@東京に参加しました。
https://sakura-kanto.doorkeeper.jp/events/64652
今回のハンズオンでは温度センサーから取得した温度情報をlTEモジュールを使ってsakura.ioに送信。温度が30℃を超えるとTwilioのAPIを叩いて、自分の携帯に連絡。音声メッセージで温度が上昇したことを伝え、空調のスイッチをいれる場合は1を押すようにうながされます。1を押すとTwilioからsakura.ioにデータがおくられ、ブレッドボードに取り付けられたLEDが点灯するというものでした。
結果としては動画の用になります。
今回、Twilio側の設定について自分で復習できるようにメモをしました。
Twilioで電話番号を購入する
Twilioで電話番号を購入します。月々108円とのことです。
![Twilioクラウドコミュニケーション___音声通話とSMSアプリケーション構築用のWebサービスAPI.jpg Twilioクラウドコミュニケーション 音声通話とSMSアプリケーション構築用のWebサービスAPI](https://digital-light.jp/wp-content/uploads/2017/11/cc248172e0509f28061b174ed5147505.jpg)
![Twilio_Console_-_Phone_Numbers_Search_Buy_Results.jpg Twilio Console Phone Numbers Search Buy Results](https://digital-light.jp/wp-content/uploads/2017/11/twilioTwilio_Console_-_Phone_Numbers_Search_Buy_Results.jpg)
![Twilio_Console_-_Phone_Numbers_Search_Buy_Results.jpg Twilio Console Phone Numbers Search Buy Results](https://digital-light.jp/wp-content/uploads/2017/11/twilioTwilio_Console_-_Phone_Numbers_Search_Buy_Results-1.jpg)
![Twilio_Console_-_Phone_Numbers_Incoming.jpg Twilio Console Phone Numbers Incoming](https://digital-light.jp/wp-content/uploads/2017/11/twilioTwilio_Console_-_Phone_Numbers_Incoming.jpg)
値の設定
今回のハンズオンで用意されたプログラムで使用する値は、Twilioの中のconfigrationで設定できますので、そこに入力します。
![Twilio_Console_-_Phone_Numbers_Incoming.jpg Twilio Console Phone Numbers Incoming](https://digital-light.jp/wp-content/uploads/2017/11/twilioTwilio_Console_-_Phone_Numbers_Incoming-1.jpg)
![Twilio_Console_-_Runtime_概要.jpg Twilio Console Runtime 概要](https://digital-light.jp/wp-content/uploads/2017/11/9e593e2e40d0bbfcc9d0571dfdcde461.jpg)
![Twilio_Console_-_Runtime_Functions_構成.jpg Twilio Console Runtime Functions 構成](https://digital-light.jp/wp-content/uploads/2017/11/cfa0c320af3f931e06441b5e1b14cbd1.jpg)
FROM_NUMBER
FROM_NUMBERは、かかってくる電話番号。先程、Twilioで購入した電話番号を入力します。
入力は+81から一番最初の0を抜いた番号です。
![Twilio_Console_-_Runtime_Functions_構成.jpg Twilio Console Runtime Functions 構成](https://digital-light.jp/wp-content/uploads/2017/11/cfa0c320af3f931e06441b5e1b14cbd1-2.jpg)
MODULE_ID
MODULE_IDはsakura.ioのモジュールのIDです。
これは、sakura.ioの管理画面から確認できます。
![sakura_io_-_ホーム.jpg Sakura io ホーム](https://digital-light.jp/wp-content/uploads/2017/11/0c1d1854a72baf6915ae43717bc38b7d.jpg)
SAKURA_URL
SAKURA_URLもsakura.ioの管理画面から確認。
![sakura_io_-_サービス連携の編集_Incoming_Webhook.jpg Sakura io サービス連携の編集 Incoming Webhook](https://digital-light.jp/wp-content/uploads/2017/11/4418781dde17eba4281381801745da76.jpg)
TO_NUMBER
TO_NUMBERは、Twilioから電話をかける相手の電話番号です。
![Twilio_Console_-_Runtime_Functions_構成.jpg Twilio Console Runtime Functions 構成](https://digital-light.jp/wp-content/uploads/2017/11/cfa0c320af3f931e06441b5e1b14cbd1-1.jpg)
以上を入力したらsaveします。
![Twilio_Console_-_Runtime_Functions_構成.jpg Twilio Console Runtime Functions 構成](https://digital-light.jp/wp-content/uploads/2017/11/cfa0c320af3f931e06441b5e1b14cbd1-3.jpg)
Twilio側でコードを書きます。
メニューからFunctionsから「Manage」を選び「Create function」のボタンをおします。
![Twilio_Console_-_Runtime_Functions_構成.jpg Twilio Console Runtime Functions 構成](https://digital-light.jp/wp-content/uploads/2017/11/cfa0c320af3f931e06441b5e1b14cbd1-4.jpg)
![Twilio_Console_-_Runtime_Functions_管理.jpg Twilio Console Runtime Functions 管理](https://digital-light.jp/wp-content/uploads/2017/11/a2ff661ec854d1b3844fe040aacf2330.jpg)
New Functionのメニューが表示されるので、そこから「+Blank」をえらび、「Create」
![Twilio_Console_-_Runtime_Functions_管理.jpg Twilio Console Runtime Functions 管理](https://digital-light.jp/wp-content/uploads/2017/11/a2ff661ec854d1b3844fe040aacf2330-1.jpg)
PropertiesからPATHを入力。
![Twilio_Console_-_Runtime_Functions_管理.jpg Twilio Console Runtime Functions 管理](https://digital-light.jp/wp-content/uploads/2017/11/a2ff661ec854d1b3844fe040aacf2330-2.jpg)
![Twilio_Console_-_Runtime_Functions_管理.jpg Twilio Console Runtime Functions 管理](https://digital-light.jp/wp-content/uploads/2017/11/a2ff661ec854d1b3844fe040aacf2330-3.jpg)
outboundcallのコードについては
https://github.com/sakuraio/handson-sample/blob/master/twilio/outboundcall.js
これをコピー
![Twilio_Console_-_Runtime_Functions_管理.jpg Twilio Console Runtime Functions 管理](https://digital-light.jp/wp-content/uploads/2017/11/a2ff661ec854d1b3844fe040aacf2330-4.jpg)
そして、セーブ
IVR
IVRのファンクションを作成します。
![Twilio_Console_-_Runtime_Functions_管理.jpg Twilio Console Runtime Functions 管理](https://digital-light.jp/wp-content/uploads/2017/11/a2ff661ec854d1b3844fe040aacf2330-5.jpg)
![Twilio_Console_-_Runtime_Functions_管理.jpg Twilio Console Runtime Functions 管理](https://digital-light.jp/wp-content/uploads/2017/11/a2ff661ec854d1b3844fe040aacf2330-6.jpg)
![Twilio_Console_-_Runtime_Functions_管理.jpg Twilio Console Runtime Functions 管理](https://digital-light.jp/wp-content/uploads/2017/11/a2ff661ec854d1b3844fe040aacf2330-7.jpg)
https://github.com/sakuraio/handson-sample/blob/master/twilio/ivr.js
![Twilio_Console_-_Runtime_Functions_管理.jpg Twilio Console Runtime Functions 管理](https://digital-light.jp/wp-content/uploads/2017/11/a2ff661ec854d1b3844fe040aacf2330-8.jpg)
Turnを作成
![Twilio_Console_-_Runtime_Functions_管理.jpg Twilio Console Runtime Functions 管理](https://digital-light.jp/wp-content/uploads/2017/11/a2ff661ec854d1b3844fe040aacf2330-9.jpg)
![Twilio_Console_-_Runtime_Functions_管理.jpg Twilio Console Runtime Functions 管理](https://digital-light.jp/wp-content/uploads/2017/11/a2ff661ec854d1b3844fe040aacf2330-10.jpg)
![Twilio_Console_-_Runtime_Functions_管理.jpg Twilio Console Runtime Functions 管理](https://digital-light.jp/wp-content/uploads/2017/11/a2ff661ec854d1b3844fe040aacf2330-11.jpg)
コードはこちら
![Twilio_Console_-_Runtime_Functions_管理.jpg Twilio Console Runtime Functions 管理](https://digital-light.jp/wp-content/uploads/2017/11/a2ff661ec854d1b3844fe040aacf2330-12.jpg)
さくら側
さくらとTwilioをつなげる設定。
![sakura_io_-_ホーム.jpg Sakura io ホーム](https://digital-light.jp/wp-content/uploads/2017/11/0c1d1854a72baf6915ae43717bc38b7d-1.jpg)
![sakura_io_-_追加サービスの選択.jpg Sakura io 追加サービスの選択](https://digital-light.jp/wp-content/uploads/2017/11/12eef00fbb2c723df7b2cafba61a1d8d.jpg)
![sakura_io_-_サービス連携の作成_Outgoing_Webhook.jpg Sakura io サービス連携の作成 Outgoing Webhook](https://digital-light.jp/wp-content/uploads/2017/11/27e3e7badb6bddb2de86665dd416ca2c.jpg)
![Twilio_Console_-_Runtime_Functions_管理.jpg Twilio Console Runtime Functions 管理](https://digital-light.jp/wp-content/uploads/2017/11/a2ff661ec854d1b3844fe040aacf2330-13.jpg)
![Twilio_Console_-_Runtime_Functions_管理.jpg Twilio Console Runtime Functions 管理](https://digital-light.jp/wp-content/uploads/2017/11/a2ff661ec854d1b3844fe040aacf2330-14.jpg)
まとめ
sakura.ioはArduinoのシールドと組み合わせセンサーで取得したデータをLTE回線からsakura.ioに送ることができるので、距離の離れたところにある機器の情報を取得するのにとても便利なプラットフォームです。
また、Twilioは直接、電話という手段を使い音声で連絡をとれるだけでなく、その場で対応をボタンを押すことで、Twilioを通してsakura.ioにも送ることができるので、誰でもわかりやすく、また操作もシンプルにすることができます。
今後はここら辺とDALIを連携させて、設備制御とsakura.io、Twilioをつなげた実験をしてみたいと思います。