Hubot メモ
導入
Mac
npm で hubot と coffee-script をインストールする.
sudo npm install -g hubot coffee-script
各種コマンド
プロジェクトを作成する
hubot -c #{プロジェクト名}
ローカルで立ち上げる
bin/hubot
モジュールのインストール
Node.js のモジュールがインストールできる. --save
オプションを付ける.
npm install --save hubot-cron
Hubot Scripting
ディレクトリ構造
- bin: 実行ファイル
- node_modules:
npm install --save
コマンドでインストールされたモジュール - scripts: 自作 Script の保管場所
- Procfile: 実行命令
external-scripts.json
hubot-scripts.json
package.json
: 設定
基本
bin/hubot
で対話環境に入る.
> hubot ping PONG
この挙動は scripts/ping.coffee
で定義されている.
module.exports = (robot) -> robot.respond /PING$/i, (msg) -> msg.send "PONG"
Hubot は Node.js で動いているため, module.exports
に robot
を引数とする関数を登録する. この robot
の関数として respond
というのが提供されている. この関数は第一引数に正規表現を書き, それにマッチしたメッセージを受け取った時, 第二引数の関数を実行する処理である.
ここでは /PING$/i
が正規表現である. $
があるので, 後方マッチで, かつ, i
が付いているため, 大文字と小文字を区別しない. ゆえに, hubot ping
に反応する.
また, robot.respond
は hubot 自身に呼びかける必要がある.
関数群
Hubot Scripting が詳しい.
Heroku で動かす
以下の情報が正しい
SlackのHubotを導入する際にはまったところ(Heroku経由) - Qiita
Heroku の設定をする
heroku に login する
heroku login
Heroku に ssh key を add する
heroku keys:add
hubot-slack を入れる
npm install --save hubot-slack
Procfile を編集する
web: bin/hubot --adapter slack
push する
git と heroku に最新の commit を push する.
git push origin master git push heroku master
Heroku に必要な情報を設定する
heroku config:add HUBOT_SLACK_TOKEN=token heroku config:add HUBOT_SLACK_TEAM=team heroku config:add HUBOT_SLACK_BOTNAME=botname heroku config:add HUBOT_SLACK_CHANNELS=channelname heroku config:add HUBOT_SLACK_CHANNELMODE=whitelist heroku config:add HEROKU_URL=Heroku で設定された URL
channelmode を whitelist にするのが地味に重要. Channels も.