カンテラの光の下で

dNaga392's memorandom

Slack への Hubot 導入はじめ

導入でつまずいたので、記事で残します。

環境とインストールしておくツール

git は必須ではないですが、git bashから構築及び実行をしているため挙げました。 git と node.js については公式配布物から最新版をインストールでよいです。 当該環境ではインストーラによる導入をしています。

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つです。

  1. Hubotを降ろすBotアカウントを追加
  2. API Token を控える

Botアカウントを追加できたら、Slackでの対話をしましょう。 以下を実行して、Hubotを起こします。 xxxxxxxxxxxxxxx には、先ほどのAPI Token を置換して実行ください。

$ HUBOT_SLACK_TOKEN=xxxxxxxxxxxxxxx bin/hubot --adapter slack

無事実行できたら、Hubotを降ろしたアカウント宛に ping します。 PONG をリプライされれば対話成功です。

導入はじめの手続きは以上です。

今は script ディレクトリに 対話例のスクリプト example.coffee があるので、いろいろと試して遊んでこの後を考えてます。 また、実際に運用する場合はローカルではなく heroku などを使うことになるかと思います(が、まだ試していません)。

参考