こちらの記事を拝見して、弊社の Slack でも試してみたいという声があったので導入してみました。
紹介されている npm を利用します。
すでに hubot-slack を利用して、Slack 上で Hubot が利用できる状態から始めました。
また、Hubot は Heroku 上で動かしています。
Slack Web API token を取得する
実はこれが一番はまりました。どの API token のことを言ってるのか分からなくて script ファイルと Slack のドキュメントと睨めっこしてしまった…
普段から API を弄ってるひとはすぐに分かるんでしょうけども、ずっと Integration の Hubot 用 token と間違えてました(;´Д`)
hubot-slack-timeline の README に以下の記述があります:
Note: You can generate Slack API token here https://api.slack.com/
https://api.slack.com/ にある "Slack Web API" のページで token を作成できます。
複数チームに所属しているひとは、timeline を使いたい Team の token を取得しましょう。
生成した token を Heroku の環境変数 SLACK_API_TOKEN="YOUR_SLACK_API_TOKEN"
に追加しておきます。
hubot-slack-timeline の有効化
今回は package.json
に以下の2つのモジュールを追加しました。
request モジュールを利用していなかったため、ここでもちょっとハマリました。
- "hubot-slack-timeline": ">= 0.1.0"
- "request": ">= 2.51.0"
あとは external-scripts.json
に "hubot-slack-timeline" を追加して、Heroku に deploy(push)します。
本題からは逸れますが、最近は Heroku の beta 機能である "Connected to GitHub" を利用して、GitHub 上の master ブランチに修正が merge されたときに自動で Heroku deploy されるようにしています。捗る。
Slack 上に #timeline チャンネルを作る
これはもちろん先にやっておいて構いません。
channel に Join する人は通知すべて OFF(Never)にするのをお忘れなく。topic に注意書きも書きました。
#timeline 始動
Hubot が正常に起動すると、すぐに timeline が動き始めます。
上手く動かない時は heroku logs
でログを確認したり、環境変数の token を確認して heroku restart
をしてみたりしてください。
hubot-slack-timeline にいろいろ設定が欲しかったり(特定ユーザ/チャンネルの除外とか)、 'via #channel' からその channel へジャンプしたいとか、ローカルで(動作確認のために)動かしたときは例外を吐かないで欲しかったりいろいろありますが、その辺は追々手を出していくかもしれません。