What’s Hubot
GitHub製のBOT. CofeeScriptで書かれており, Node.jsで動作する. MITライセンスなOSS.  
独自のscriptを定義でき, adapterの機構で様々なチャットシステムにも対応できる. ChatOps.  
HubBotを動作させるにはRedisが必要. 
Install Hubot.
Hubotを始める方法はこちらに詳しく書かれている.  
HubotはNode.jsで動作するためNode+npmの環境を用意しておく必要がある. 
HubotはYeoman generatorからinstallする.
# アクセス権限が必要であればsudoで.
npm install -g yo generator-hubot次に, Hubot用のディレクトリを作成して, そこで新しいHubotインスタンスを作成する.  
いくつか質問されるので回答する. 
# 今回はボットの名前をmarimoで作成
mkdir marimo
cd marimo
yo hubot
# Bot adapterはとりあえずcompfireで
? Owner: MatsumuraYuki <xxx@gmail.com>
? Bot name: marimo
? Description: A simple helpful robot for your Company
? Bot adapter: campfire実行が成功するとHubotに必要なrediaも同時にインストールされている.  
Botの雛形が出来上がったのでgit repositoryにcommitしておく. 
git init
git add .
git commit -m "Initial commit. Hello marimo!"ローカルでmarimoを動かしてみる.
# shell adapterを使ってHubotを起動
bin/huboterrorメッセージが表示されてがskipする. プロンプトがmarimo>になれば対話ができる状態である.  
とりあえずpingで生存確認. 
marimo> @marimo ping
marimo> PONGpongの返答があればok. 他にも使える対話コマンドが多くある. 
marimo> marimo helpDeploy Hubot
marimoをHerokuにdeployする.
事前にHeroku Account, Heroku App, Heroku Toolbeltを用意しておく.
# heroku appを作成. アプリ名は適宜変更. 今回はmarimo-appで作成
heroku create <app name>Hubotがデータを永続化(brain)するのに必要なredisをHeroku側に用意しておく.
# 無料planの30MBタイプを指定. addon追加にはHerokuにクレジットカード要登録
# https://elements.heroku.com/addons/rediscloud#pricing
heroku addons:create rediscloud:30heroku createローカルGit repositoryのremoteにherokuが追加されるので, remoteへhubot scriptをpushする. 
git push heroku masterrootにあるProcfileを見てみる. 
web: bin/hubot -a compfire-a引数により, hubotのadapterがcampfireになっている.  
他のチャットサービスと連携させたい場合はadapterを追加してこれを編集する. 
Hello Slack
HubotをSlackと連携させる. Slackと連携させるためのadapterはすでに用意されている.
slack adapterをインストールする.
npm install hubot-slack --save
# installできたか確認
npm list hubot-slack
marimo@0.0.0 /Users/yuki312/marimo
└── hubot-slack@3.4.0 Heroku deploy時に使われるscriptも変更しておく.
vim Procfile
# 下記内容に変更
#   before: web: bin/hubot -a campfire
#   after : web: bin/hubot -a slackslackのintegrationにHubotを追加するとHUBOT_SLACK_TOKENが得られるのでこれをHeroku環境変数に設定. 
heroku config:add HEROKU_URL=https://<Heroku App URL>
heroku config:add HUBOT_SLACK_TOKEN=xoxb-...git commitしたらHerokuへdeployして完了.
git add .
git commit -m "support slack"
git push heroku master以上.