“温泉”Twilio通知! ~ハッカソン2017 Bチーム 後編~

こんにちは。
岩津です。

Bチーム後編です。
前編はこちらをごらんください。

電話APIサービスとして有名な”Twilio”が、”Functions”サービスを公開しました。
簡単に言うと「自分でサーバを用意しなくても電話サービスを構築できる」という感じです。

以前はサーバーレスで稼働させるためにはAWS Lamdaなどを利用してシステムを作る必要がありましたが、簡単なものであればTwilio単体でシステムを完結できるようになったため、シンプルにサービスを作れるようになりました。

今回のハッカソンではこのTwilio Functionsを利用して、弊社提供サービスであるFASTIOからエッジ側の情報を電話で受け取ってみました。

まずやったことはFunctionsを利用して宿泊周辺(ニセコ)の天気を取得してみました。
今回はLINE社が提供する”Weather Hacks”を利用して天気を取得します。(認証処理が不要なので簡単に天気情報が取得できます)
FunctionsはNode.jsとなってます。

やってみたこと

コード(抜粋)

Weather Hacksからは以下のように天気情報が取得されます

天気情報

あとはTwilio上で取得した電話番号とFanctionsを紐付けて、電話をかけると上記の天気情報が音声で案内されます。

外部システムとの連携が確認できたので次はエッジ側の状況をFunctionsで取得してみます。

実は宿泊した施設にはなんと天然温泉が引き込まれており、24時間温泉に入れるという素敵な作りになっていました。
別チームではその温泉(浴室)に温度センサーを設置していることがわかり、「電話で温泉の温度がわかると面白いんじゃないか」と思いつき、温度データを活用して「Twilio音声通知」ならぬ「Twilio温泉通知」をやってみようとなりました。

やってみたこと

FASTIO 上の温泉浴室温度グラフ

温泉浴室の温度はすでにFASTIOへ送信され続けているので、FASTIO上では刻々と温度と湿度が記録されています。

温度リスト

FASTIOに保存された温度はAPIで取得できるのでFunctionsから取得します。

コード(抜粋)

発表では電話をTwilio番号にかけて以下のような音声が聞こえるのをデモしました。

今思えば「お湯の温度が熱くて入れない」という他メンバーの話もあったので、室温ではなくお湯を計測するのもよかったかもしれません。
実際の運用ではFASTIO側から警戒温度を超えた時点でWebfookを利用して指定の電話番号に電話をかけるなどの利用が考えられます。

反省点は端末実機との連携デモができなったところですが、そのかわりTwilioの電話会議機能や音声文字化をデモできたので社内サービスに応用していくきっかけづくりとしては良かったのではと思います。

まとめ

Functionsを利用することで気軽にTwilioの機能を試したり他のシステムと連携できるようになりました。
サービスの向上のために積極的に活用していきたいと思います。

……あと「温泉通知」と言ってみたかったんです。