Hubotを使ってSlack、Hipchatと連携してみる。さらにGitHubへ

Hubotをインストールする

はじめてのHubot – Qiita
こちらのまとめがすごく良かったです。

Hubotを使うにはnode.jsとredisが必要なのでインストールする。
ぼくはnodeはnodebrewですでに入れているので、redisだけをbrewから入れる。

% brew install redis

redisの起動しておく。

% redis-server &

HubotのコマンドはCoffeeScriptで書かれているので、Hubotと一緒にインストールしちゃいます。

% npm install -g hubot coffee-script

あとは、Hubotの環境を作ります。

% hubot –create projectName

するとprojectNameというディレクトリが作られるので、

% cd projectName
% ./bin/hubot

でHubotのコマンドが打てるようになります。

Hubot> hubot ping
Hubot> PONG

PONGと返ってくればHubotが動いています。
個人的にはパグ画像を引っ張ってきてくれるコマンドが好きです。(パグかわいい!)

Hubot> hubot pug me

これもかわいい!gifの犬画像ヤヴァい!

Hubot> hubot animate me dog

HubotをHerokuにデプロイしSlackと連携してみる

基本的にはここに書かれていることをやるとうまくいく。
hubot-slack/README.md at master · tinyspeck/hubot-slack

すでにHubotはインストールしているので、

% npm install hubot-slack –save

だけ実行しておく。

ここからはHerokuにデプロイする方法になります。
hubot/docs/deploying/heroku.md at master · github/hubot

Herokuにログインする。

% heroku login
Enter your Heroku credentials.
Email: youremail@example.com
Password:
Could not find an existing public key.
Would you like to generate one? [Yn]
Generating new SSH public key.
Uploading ssh public key /Users/you/.ssh/id_rsa.pub

Herokuにデプロイするためにgitリポジトリを作る。

% git init
% git add .
% git commit -m “Initial commit”

Herokuアプリケーションを作る。
redisを使うのでアドオンも追加しておく。

% heroku create my-company-slackbot
$ heroku addons:add redistogo:nano

ここでアプリケーションのURLが作成される。

HerokuへのデプロイファイルのProcfileを編集する。

web: bin/hubot –adapter slack

HubotとSlackをIntegrationさせる。

Team Integration | Frontend-Team Slack
こちらより、追加させる。

% heroku config:add HEROKU_URL=自分のHerokuアプリケーションURL
% heroku config:add HUBOT_SLACK_TOKEN=HubotとSlackをIntegrationしたときに表示される
% heroku config:add HUBOT_SLACK_TEAM=HubotとSlackをIntegrationしたときに表示される
% heroku config:add HUBOT_SLACK_BOTNAME=HubotとSlackをIntegrationしたときに表示される

忘れちゃいけないのが、Service Configuration先ほど作ったHerokuのアプリケーションURLを入れる。
これを忘れるといっこうに連携されない。

最後にHerokuにデプロイしてアプリケーションを起動すればOK!

% git push heroku master
% heroku ps:scale web=1

Slack上で

slackbot pug me

のようにコマンドを実行できるようなっているはず。
@はつけない。

HubotをHerokuにデプロイしHipchatと連携してみる

事前にHipchatでGroup Adminよりbot用のアカウントを追加しておく。
RoleはUserにしておいた。
Slackと違い、Hipchatは事前にユーザーを追加しておく必要があるみたいだ。

すでにHubotの環境があるので、そのまま続けてHipchatとも連携してみる。

hipchat/hubot-hipchat
基本的にはここのリンクの通りやるとうまくいく。

icu4cというのをインストールする必要があるが、すでに入っていたのでスキップした。

% brew install icu4c
% brew link icu4c

Hipchatと連携要のnpmをインストールする。

% npm install –save hubot-hipchat

Procfileに

web: bin/hubot –adapter hipchat

を追加する。
なので、slackの分を合わせると、

web: bin/hubot –adapter slack
web: bin/hubot –adapter hipchat

こうなる。

heroku config:add HUBOT_HIPCHAT_TOKEN=HipchatのAPIからtokenを作成する
heroku config:add HUBOT_HIPCHAT_JID=123_456@chat.hipchat.com
heroku config:add HUBOT_HIPCHAT_PASSWORD=アカウントのパスワード
heroku config:add HUBOT_HIPCHAT_ROOMS=123_hoge@@conf.hipchat.com

HUBOT_HIPCHAT_JIDはbot用に作ったユーザーのJabber IDです。
はじめ自分のJabber IDにしてて、まったくHubotが動かなくてハマりました。
XMPP/Jabber account settings

HUBOT_HIPCHAT_ROOMSが部屋のnameでなく、XMPP JIDなのでお間違えなく。

最後にデプロイすれば、自動的にHipchatにhubotユーザーが追加される。
追加されなければ何かが間違っている。

もしかすると、Roomのパーミッションをopenにしてないと追加されないかもしれない。
追加されたあとにprivateにすればよい。

% git push heroku master
% heroku ps:scale web=1

ちなみにHubotのコマンドはすごい量が公開されているので、必要ならこちらから取り込もう。
hubot-scripts/src/scripts at master · github/hubot-scripts

なかでも、hubot-scripts/src/scripts/zombies.coffee at master · github/hubot-scriptsがきになるが、コードを見ると特定の画像をrandomで出してるだけだったw

HipchatとGithubを連携させる

連携メモ – 優々自適
こちらの記事のとおりだが、一点気をつけるところは、

GitHub Integration – Help Center

RoomがXMPP JIDではなく、単純にRoom名なところ。
ここでもちょいとハマった。

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)
大塚 弘記
技術評論社
売り上げランキング: 465

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>