Hubot触ってみようと思って、いろいろ動かして見たのでメモ。
参考になるURL
Hubotのrepositoryを作る
https://github.com/github/hubot/tree/master/docs これのとおりに
hubot --create shibabot
とかすると作れる。
bin/hubot
とかして動けばひとまず良い。
Slackで動かすためにHerokuにデプロイする
SlackでHubotを動かすためには、
- Hubot側でSlackのHubot Integrationのtokenなどを設定する
- Slack側で、Hubotにメッセージを送るためのURLを指定する
の2つが必要。Slack側でURLを指定するために、どこかにデプロイするか、もしくは手元で動かしたのを外から見えるようにする必要がある。Herokuにデプロイするのが難しくなく、かつ無料分で可能なので、そちらで動かす。だいたいのことは https://github.com/tinyspeck/hubot-slack に書いてあるのでそれを参照すれば良い。
まずはSlack側でhubotのintegrationを有効にする。Add New IntegrationしてHubot選択すれば出来るはず。するとHUBOT_SLACK_TOKEN, HUBOT_SLACK_TEAMというのが現れるので、ひとまずhubot側の設定用にこれをメモしておく。
続いてHubotをHerokuで動かせるように設定する。これは、https://github.com/tinyspeck/hubot-slack#deploying-to-heroku を見ればすぐにできるはず。上でメモした情報を利用してherokuの環境変数とかを設定すればよいだけ。途中でHEROKU_URLを設定しているのは、hubotがidlingしないようにするためらしい。
最後にデプロイ先のURLをSlack側のHubot URLというところに埋めれば良い。例えばデプロイしたherokuのURLがhttp://soothing-mists-4567.herokuapp.comであれば、それを埋める。
ここまででうまく行っていれば、設定したSlack上でhubot helpとかコマンドを打つと返信してくれるはず。そしたらひとまず完成。もしうまく行ってなかったとすると、何か設定ミスなので、herokuのlogとかを見ると解決できるはず。以下のようなコマンドを打つと、herokuで動いているアプリのlogを出してくれる。
heroku logs
僕は最初Hubot URLにpathの/hubot/slack-webhookまで含めてしまい、おかしくなっていたのをログを見て解決できた。
まとめ
- SlackでHubotを動かすには、メッセージを受け取る先のURLを指定しないといけない(最初はまった)
- どこかにデプロイするか何かする必要がある
- Hubotをherokuで動かすのは無料かつ簡単で便利