GAGEX BLOG

GAGEXの業務内容や取り組みを公式ブログで情報発信中!

GoogleHomeを活用したGAGEXの自動受付システム

GoogleHomeを活用したGAGEXの自動受付システム

エンジニアのかわかみです。エンジニアリング系の記事をこれから書いていく予定です。
初めなので今回は軽めの記事として、半年前に導入したGoogleHomeを使った受付システムについて紹介します。

会社の受付システムを検討されている際は参考にしてみてください。

導入のきっかけ


受付システムとしてRECEPTIONISTを導入し、以下の運用を行っていました。

  1. 来客の方がエントランスにあるiPad(RECEPTIONIST)を操作
  2. receptionistシステムがslackの来客用チャンネルへ投稿
  3. 社内フロアにあるiPodtouchに通知が届き、通知音が鳴る

ですが単なる通知音なので分かりにくかったり、会議室など他の場所に居ると気付きにくい。という問題が挙がっていました。
あと面白くなかったです。

なのでGoogleHomeに来客があった時に分かりやすく喋って貰う受付システムを導入しよう!というのがきっかけとなります。

導入した結果


(2)以降の流れを変えて以下のようにGoogleHomeを組み込んだ仕組みに変えてみました。

  1. 来客の方がエントランスにあるiPad(RECEPTIONIST)を操作
  2. RECEPTIONISTシステムがslackの来客用チャンネルへ投稿
  3. PC(mac mini)上のslack botにslackの来客用チャンネルを監視させる
  4. slack投稿に新着があれば、PC(mac mini)からGoogleHomeへ発話メッセージを送信
  5. 所定位置に配置されたGoogleHomeが来客があった事を喋る

手順は多いですが結構簡単に導入出来ました。
ちょっとの手間で他社員から喜ばれるのでやってみる価値がある試みだと思います。

では、導入方法について書いていきます。

slackの設定

以下のようにHubotを追加してAPIトークンを得ます。

  1. Appディレクトリから「Hubot」を追加
  2. 追加後のHubotページにて「設定を追加」ボタンを押下して、今回用のbot名を登録
  3. 「APIトークン」が表示されるので後でこちらを利用する

ここまでの作業でAPIトークンが得られるのと、slackのApp一覧に上記作成したbotがオフラインで存在するようになります。
あと忘れずにbotに監視しさせたいslackチャンネルへの追加を行っておきます。

PCの設定

今回はmac mini(OS v10.14)を使いました。
slack botを使うため営業時間中は起動し続けているPCであれば、こちらは何使っても問題ないかと思います。

まずはslackのbot開発を行うため、Hubotをインストールします。インストール手順については割愛します。
次にGoogle Homeで発話させるために、google-home-notifierをインストールします。こちらも手順は割愛。なお、インストール先はHubotのbotからアクセスしやすいディレクトリが良いです。

Hubotの準備

Hubotで今回用のbot作成を行い、bot起動用のスクリプトを作成します。必須ではありませんがあると便利です。
「HUBOT_SLACK_TOKEN」には先程取得したslackのAPIトークンを設定します。

#!/bin/bash

HUBOT_SLACK_TOKEN=xoxb-0000000000000000000000000000000 ./bin/hubot --adapter slack

ここまでの作業で、スクリプトを実行する事でslack上のbotがオンライン状態になります。

更に追加でMac起動時に上記スクリプトを自動実行する対応も行っておきます。
Automator.appを起動し、アプリケーション種類、アクションを「シェルスクリプトを実行」にします。
そして実行するスクリプトに先程作成したスクリプトを実行させるコマンドを書いておきます。以下スクリプトの「reseption_speech_bot.sh」は上記のShellScriptになります。名前は適宜変更ください。

source ~/.bash_profile
cd /Users/GAGEX/.slack/reception-speech-bot
./reseption_speech_bot.sh

更に更に上記アプリケーションをMac起動時に実行させるために、設定 > ユーザーとグループ > ログイン項目 の一覧へ上記アプリを追加します。
これでMac起動時に実行されるため、botが常時オンラインとなります。

GoogleHomeの発話

同じローカルネットワークにGoogleHomeを接続させ、インストールしたgoogle-home-notifier内にあるサンプルを実行してみます。これでGoogleHomeが発話してくれたら接続に問題はありません。


今回はslackに投稿される上図のようなメッセージを受け、GoogleHomeに「本社受付 に、「お約束のある方」 ボタンから ガジェックス 様が来られました。」と言わせるようにします。
Hubotのbot scriptを以下のように改造します。なお、replaceは改行や太文字排除でを行っています。

module.exports = (robot) ->
    robot.hear /本社受付.*/i, (msg) ->
        @exec = require('child_process').exec
        command = "node ../google-home-notifier/main.js " + msg.message.text.split('\n')[1].replace(/\*/g, '').replace(/\s+/g, '')
        @exec command, (error, stdout, stderr) ->
            console.log(msg.message.text)

4行目の「../google-home-notifier/main.js」パスは先程インストールしたgoogle-home-notifierディレクトリを指してください。
4行目で用意したコマンドを5行目で実行させてGoogleHomeに発話させています。

まとめ

端折って書きましたが要点は以上となります。

slack botもGoogle Homeへの発話も便利ライブラリのお蔭で楽に実装出来ます。
なのでぜひ試してみてください。

GAGEXの求人情報

詳しくはコチラ

kawakami

かわかみひろき

エンジニアです