Edited at

Slack に Hubotを導入する際にはまったところ(Heroku経由)

More than 3 years have passed since last update.


SlackにHubot導入


はじめに

最近いろいろと話題のSlackを導入(Heroku経由)しようとしていてはまったところを開発方法に沿って挙げていきます!


新しいボット作成


1. hubotcoffee-script をインストール

$ [sudo] npm install -g hubot coffee-script


2. hubot作成

$ hubot --create ボットの名前

例)testbotという名前のボットを作るならばこのようになります。

$ hubot --create testbot

Creating a hubot install at testbot
(省略)

$ cd testbot

$ ls
Procfile README.md
bin/ external-scripts.json
hubot-scripts.json package.json scripts/


3. ライブラリ追加

$ npm install hubot-slack --save

package.jsonhubot-slackまれているか確認


4. レポジトリを作成してプッシュ


ローカルでHubotが使えるか確認

$ bin/hubot

Hubot> hubot ping
Hubot> PONG


Herokuにデプロイ


1. Procfileを編集

web: bin/hubot --adapter slack

Note: Prockfileについて


2. Heroku app作成

$ heroku create my-company-slackbot


3. Addon追加

$ heroku addons:add rediscloud


4. SlackのインテグレーションページからHubotをアクティブにする

リンク:https://sirok.slack.com/services/new/hubot


5. Herokuのconfig設定

$ heroku config:add HEROKU_URL=http://XXXXX.herokuapp.com

$ heroku config:add HUBOT_SLACK_TOKEN=XXXXX
$ heroku config:add HUBOT_SLACK_TEAM=myteam
$ heroku config:add HUBOT_SLACK_BOTNAME=slack-hubot


Herokuにデプロイ

$ git push heroku master

$ heroku ps:scale web=1

これでひと通りの作業が終了しましたが・・・・Slackでいくら読んでもhubotが呼ばれていませんでした。そんな時の対処法について次は書いていきます。


はまったところ


Herokuのログを確認してみる

これでHerokuのログを見ることができます。

$ heroku logs


パラメータの不足


問題

2014-08-31T03:30:34.671420+00:00 app[web.1]: [Sun Aug 31 2014 03:30:34 GMT+0000 (UTC)] ERROR Not enough parameters provided. I need a token, rooms and account


解決策

言われた通りに必要なものを設定しましょう。


HubotがSlackにアクセスできるようにする


問題

modeが blacklist になっているとダメです。

2014-08-31T08:18:53.303034+00:00 app[web.1]: Slack adapter options: { token: 'XXX',

2014-08-31T08:18:53.303053+00:00 app[web.1]: mode: 'blacklist',
2014-08-31T08:18:53.303055+00:00 app[web.1]: channels: [ 'CHANNEL' ],
2014-08-31T08:18:53.303050+00:00 app[web.1]: team: 'TEAM',
2014-08-31T08:18:53.303052+00:00 app[web.1]: name: 'bot',
2014-08-31T08:18:53.303056+00:00 app[web.1]: link_names: 0 }


解決策

modeを blacklist から whitelist にする

$ heroku config:add HUBOT_SLACK_CHANNELMODE=whitelist


どのチャットルームを見るのか設定


問題

2014-08-31T08:18:53.303034+00:00 app[web.1]: Slack adapter options: { token: 'XXX',

2014-08-31T08:18:53.303053+00:00 app[web.1]: mode: 'blacklist',
2014-08-31T08:18:53.303055+00:00 app[web.1]: channels: [ 'CHANNEL' ],
2014-08-31T08:18:53.303050+00:00 app[web.1]: team: 'TEAM',
2014-08-31T08:18:53.303052+00:00 app[web.1]: name: 'bot',
2014-08-31T08:18:53.303056+00:00 app[web.1]: link_names: 0 }


解決策

対象にするチャネルを設定する

$ heroku config:add HUBOT_SLACK_CHANNELS=channel1, channel2


参照サイト一覧


公式ドキュメント


Qiita上ドキュメント