ガチャつくブログ

IT系のお勉強のために、やってみたことをアウトプットしていきます。

Hubot で遊ぶ - Slackに住まわせる -

f:id:tmt-tty:20190220234836p:plain

 はじめに

GitHub社が開発したチャットボット開発、実行フレームワークの『Hubot』を使いたいと思います。
更に作成したbotをSlackから使える様にします。

 

 必要なモノ

スイッチサイエンス Raspberry Pi Zero W スターターキット(16GB版)
by カエレバ
  • Slack

    ボットを最終的に住まわせる場所です。
    下記から簡単に作れるので、作成方法は割愛します。

    slack.com

 やり方

Raspberry Pi を使える状態にしておきます。

過去記事を参考にしてください。

www.gachatsuku.com

 

次に、Raspberry Pi に『Hubot』をインストールしていきます。

node.js のインストール

sudo apt-get install -y nodejs

 

npmインストール

sudo apt-get install -y npm

 

npm n インストール

sudo npm cache clean
sudo npm install npm n -g
sudo n stable

 

yo インストール

sudo npm install yo -g

 

generator-hubot インストール

sudo npm install generator-hubot -g

 

coffee-script インストール

sudo npm install coffee-script -g

 

hubotの作成

格納ディレクトリ作成

mkdir hubot
cd hubot

 

hubot 作成

yo hubot

 

f:id:tmt-tty:20190220230033p:plain

 

対話形式で以下の情報を入れます。

  • Owner
    メールアドレス設定。
  • Bot name
    hubotの名前。
  • Description
    hubotの概要。適当でOK。
  • Bot adapter
    hubotのアダプタを指定する。今回はslackを指定。

できた様です。

f:id:tmt-tty:20190220230537p:plain

 

確認してみます。

bin/hubot

 

gachabot ping

PONGと返ってくればOKです。

f:id:tmt-tty:20190220230936p:plain

 

ここで、Slack側の設定をやっておきます。

下記にアクセスします。

slack.com

 

Hubotをインストールします。

f:id:tmt-tty:20190220231421p:plain

 

ボットのユーザー名を入力し、"Hubotインテグレーションの追加"をクリックします。

f:id:tmt-tty:20190220231458p:plain

 

APIトークンが発行されるので、控えておきます。

保存をクリックして、Slack側の設定は完了です。

f:id:tmt-tty:20190220231628p:plain

 

hubot側の設定に戻ります。

APIトークンの設定

vi bin/hubot

 

ファイルに1行追加します。

export HUBOT_SLACK_TOKEN=先程控えたAPIトークン 

#!/bin/sh

set -e

npm install
export PATH="node_modules/.bin:node_modules/hubot/node_modules/.bin:$PATH"
export HUBOT_SLACK_TOKEN=先程控えたAPIトークン

exec node_modules/.bin/hubot --name "gachabot" "$@"

 

確認してみます。

bin/hubot -a slack

 

Slack上でbotがオンライン(ステータス緑)になればOKです。

f:id:tmt-tty:20190220232416p:plain

 

Slack上でもpingに反応すればOKです。

f:id:tmt-tty:20190220232540p:plain

 

最後にhubotプログラムをバックグラウンド起動させるためにforeverをインストールします。

sudo npm install forever -g

 

起動用のスクリプトを作成します。

run.sh

#!/bin/bash
HUBOT_SLACK_TOKEN=先程控えたAPIトークン
forever start -c coffee node_modules/.bin/hubot -a slack

 

起動させます。

./run.sh