Slack への Hubot 導入はじめ
導入でつまずいたので、記事で残します。
環境とインストールしておくツール
git は必須ではないですが、git bashから構築及び実行をしているため挙げました。 git と node.js については公式配布物から最新版をインストールでよいです。 当該環境ではインストーラによる導入をしています。
- git : https://git-scm.com/
- node : https://nodejs.org/
Hubot を召喚しよう
Hubot プロジェクトの作成には、公式ドキュメントが大きな力になります。
https://hubot.github.com/docs/
召喚例として導入時の内容を以下に記述します。 環境を整えたら、まずは git bash を起動して node および npm が使えることを確認します。
$ node -v v5.2.0 $ npm -v 3.5.2
npm のバージョンが確認できたら、Hubotのジェネレータをインストールします。
$ npm install -g yo generator-hubot
ここまでできたら、いよいよ召喚の議を行います。 召喚先のプロジェクトフォルダを作成し、Hubotをインストールします。
$ mkdir myhubot $ cd myhubot $ yo hubot
これでhubotが降臨します。 降臨中に Owner, Bot name, Description, Bot adapter の4つを聞かれるので回答します。
前者3つは自由回答でかまいませんが、adapter は slack と回答しましょう。 そうすることで slack 向けの初期設定がされます。
降臨後はコマンドで ./bin/hubot を実行し、対話を試みます。 対話では Bot name で決めた名前でよびかけます。 以下は Bot name を myhubot とした場合の対話例です。
$ bin/hubot
myhubot ping
myhubot> PONG
myhubot が PONG を返したので対話成功です。 インストールできたと言えます。
各コマンド実行の際に yeoman が不足しているなどの警告があれば適時インストールしてください。 自分の場合、(タイミングは忘れましたが)yeoman-doctor が欲しいと言われたので npm でインストールしました。
$ npm -g install yeoman-doctor
Hubot を Slackに呼ぼう
Slack に呼ぶ方法は以下を参考にしました。
Slack の Costom IntegrationページでHubotを召還する準備をします。 準備は2つです。
Botアカウントを追加できたら、Slackでの対話をしましょう。 以下を実行して、Hubotを起こします。 xxxxxxxxxxxxxxx には、先ほどのAPI Token を置換して実行ください。
$ HUBOT_SLACK_TOKEN=xxxxxxxxxxxxxxx bin/hubot --adapter slack
無事実行できたら、Hubotを降ろしたアカウント宛に ping します。 PONG をリプライされれば対話成功です。
導入はじめの手続きは以上です。
今は script ディレクトリに 対話例のスクリプト example.coffee があるので、いろいろと試して遊んでこの後を考えてます。 また、実際に運用する場合はローカルではなく heroku などを使うことになるかと思います(が、まだ試していません)。