RaspberryPiにSlackでBOTが使えるようになるhubotをインストールして、slackと連携させてみたいと思います。
hubotのインストール
hubotのインストールに必要なものをインストールしていきます。
npmのインストール
sudo apt-get install npm
Node.jsのインストール
curl -L https://deb.nodesource.com/setup_8.x | sudo -E bash - sudo apt-get install -y nodejs
yoのインストール
sudo npm install -g yo
generator-hubotのインストール
sudo npm install -g generator-hubot
Coffee Scriptのインストール
sudo npm install -g coffee-script
これでインストールするものは全てです。
BOTの設定
BOTを作成するディレクトリを作成し、yo hubot
を実行します。
mkdir bot cd bot yo hubot
hubotのためにエラー報告してくれるかい?
みたいなことがきかれるので任意でy
かn
で答えます。
pi@raspberrypi:~/bot $ yo hubot ? ========================================================================== We're constantly looking for ways to make yo better! May we anonymously report usage statistics to improve the tool over time? More info: https://github.com/yeoman/insight & http://yeoman.io ========================================================================== (Y/n)
すると以下のように聞かれますのでそれぞれ回答します。
? Owner kabegiwa <kabegiwa@example.com> ? Bot name bot ? Description test_bot ? Bot adapter campfire
Owner メールアドレス
Bot name BOTの名前
Description BOTの説明
Bot adapter そのままEnterでいいです。
BOTの動作確認
BOTの設定の最初で作成したディレクトリに移動して、hubotを実行します。
(./bin
なので注意!)
./bin/hubot
いろいろなエラーが出てきますが今回は関係ありませんので無視してEnterを押します。
pi@raspberrypi:~/bot $ ./bin/hubot npm WARN hubot-help@0.2.2 requires a peer of coffee-script@^1.12.6 but none is installed. You must install peer dependencies yourself. up to date in 4.578s bot> [Fri Sep 22 2017 22:15:48 GMT+0900 (JST)] WARNING Loading scripts from hubot-scripts.json is deprecated and will be removed in 3.0 (https://github.com/github/hubot-scripts/issues/1113) in favor of packages for each script. Your hubot-scripts.json is empty, so you just need to remove it. bot> [Fri Sep 22 2017 22:15:49 GMT+0900 (JST)] ERROR hubot-heroku-keepalive included, but missing HUBOT_HEROKU_KEEPALIVE_URL. `heroku config:set HUBOT_HEROKU_KEEPALIVE_URL=$(heroku apps:info -s | grep web.url | cut -d= -f2)` [Fri Sep 22 2017 22:15:49 GMT+0900 (JST)] INFO hubot-redis-brain: Using default redis on localhost:6379
botのプロンプトが出てくるので動作確認用にBOT名 ping
を実行してみましょう。PONGと帰ってきたら成功です!
bot> bot> bot ping bot> PONG
slackと連携する
slack側の設定
slackと連携させていきます。
自分のslackのチームを開き、設定から「Customoize Slack」を選択します。
左側のConfigure Appsを選択します。
上部にhubotといれて検索します。
Installをクリックします
BOTの名前を聞かれますので適当に名前をつけて「Add Hubot Integration」をクリックします。
APITokenが表示されますのでそれをコピーしてRaspberryPiの設定にもどります。
RaspberryPi側の設定
HUBOT_SLACK_TOKENに先ほどコピーしたAPITokenの値を設定します。
export HUBOT_SLACK_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
--adapter-slack
オプションをつけてhubotを起動します。
./bin/hubot --adapter-slack
ERROR Cannot load adapter slack - Error: Cannot find module 'hubot-slack'
のエラーがでたときはbot設定の最初で作成したディレクトリで以下コマンドを実行してからもう一度実行し直してみましょう
npm install hubot-slack -save
slackでの動作確認
以上の設定が完了すると、slackで以下のようにBOTがオンラインになっているはずです。
反応するかどうかためしにうごかしてみます
うごきました!
まとめ
RaspberryPiをslackのBOTとして動かすことに成功しました!
これではping PONGしかやりとりできませんがhubotではスクリプトを書くことで様々なものを作ることが可能ですのでまた別の機会に紹介できればと思います。