久々にheroku上にいるhubotをデプロイしたら
botが動かなくなってしまったので色々調べてたら
slack <-> hubot 連携がバージョンアップしてたらしい。
そしてプライベートチャンネルでも普通にhubotが動くようになってた。
さらに、世に出ているSlackとHubotの設定記事
のようなものも
古いバージョンの設定が多いので
最新版という位置づけでここにメモしておく。
(2015/4/15時点)
手順まとめ
- Slack上の Hubot Integration を新バージョンにする
- hubot-slackを3.xにアップグレードする
- Herokuの環境変数を設定し直す
- hubotインテグレーションしたいチャンネルにhubotユーザをinviteする
Slack上の Hubot Integration を作り直す
ここからHubotインテグレーションの新規追加を行います(新バージョン用のフォームになっています)。
ちなみに、ここで入力する Customize Name
がbotnameになるようです。
hubot-slack を3.xにアップデートする
以下、基本的には hubot-slackのREADMEに載っている手順です。
package.json のhubot-slackをアップデート
以下のコマンドでpackage.jsonを作り直します。
既にpackage.jsonにhubot-slackが記述されている場合、
最新版に置き換えたいので行を削除してから実行しましょう。
npm install hubot-slack --save
環境変数削除>再設定
まず、旧バージョンを利用していた場合のみですが
古い環境変数(HUBOT_SLACK_*)を削除しておきます。
heroku config:unset HUBOT_SLACK_TOKEN
heroku config:unset HUBOT_SLACK_TEAM
heroku config:unset HUBOT_SLACK_BOTNAME
その後、新バージョンの画面で表示されている HUBOT_SLACK_TOKEN を再登録します。
新バージョンでは HUBOT_SLACK_TOKEN
のみ設定すれば良いようです。
heroku config:set HUBOT_SLACK_TOKEN=xxxxxxxxxxxxx
デプロイ
package.jsonを更新しているのでデプロイします。
git push heroku master
アップグレード手順は以上です。
問題なく動作しているようであれば、
Slack上に残っている古いhubot設定を削除してしまいましょう。
Hubotインテグレーションしたいチャンネルにhubotユーザをinviteする
前バージョンでは勝手にhubotインテグレーションが始まりましたが、
新バージョンでは hubotユーザをinviteする方式 に変更されているようです。
この変更により、プライベートチャンネルでもhubotが動くようになっています。