slack bot using hubot on heroku (for Windows)

Webチャットのslackがいい感じだったのでhubotを動かしてみました。
f:id:cignoir:20140708150925p:plain

この記事は以下の記事を参考にしたWindows向けのチュートリアルです。

"Slack上のボットをHubotで作ってHerokuにデプロイしてみた"
http://nanapi.co.jp/blog/2014/06/04/slack_with_hubot/

Macの方は上の記事を参考にした方が良いと思われます。

事前準備

Github

Heroku

slack

  • アカウント登録
  • hubot用Integrationの追加

f:id:cignoir:20140708144523p:plain

本編

node.js インストール

$ cinst nodejs.install

Redis インストール

$ cinst redis

hubot & CoffeeScript インストール

$ npm install -g hubot coffee-script

グローバルでOK

hubot作成

以下は「~/workspace」ディレクトリ以下に「magis」という名前のbotを作成する例です。
適宜読み替えてください。

$ cd ~/workspace
$ hubot --create magis
$ cd magis
$ npm install hubot-slack --save
$ "web: bin/hubot --adapter slack" > ./Procfile

※ProcfileにCRLFを含めるとparse errorでherokuにpush出来ないので改行コードがLFなことを確認してください。

$ git init
$ git add --all
$ git commit -m "init"
$ git remote add origin git@github.com:cignoir/magis.git
$ git push -u origin master

デプロイ

$ heroku login
$ heroku create --stack cedar
$ git push heroku master

以下、hubot用Integrationの設定
トークン名などはslack上の「Configure Integrations」メニューから確認出来る。

$ heroku addons:add rediscloud
$ heroku ps:scale web=1
$ heroku config:add HUBOT_SLACK_TOKEN=<slackで取得したtoken>
$ heroku config:add HUBOT_SLACK_TEAM=<slackのチーム名>
$ heroku config:add HUBOT_SLACK_BOTNAME=<bot名>
$ heroku config:add HEROKU_URL=<heroku appのURL 例:http://hoge.herokuapp.com/>

http://hoge.herokuapp.com/ (自分のherokuappのURL)にアクセスしてApplicationErrorが出ていなければOKです。
私の場合は「Cannot GET /」と表示されていますが正常に動作しています。

slackで動作確認

Bot用のアカウントが追加されたりするわけではないのでオープンなチャンネルで適当にhubotのコマンドを実行してみます。
f:id:cignoir:20140708150815p:plain

private groupでは無効な様子。以上。