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

  • 74
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

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上ドキュメント