文字っぽいの。

文字を書いています。写真も混ざります。

HubotをHerokuにのせて、idobata.ioと連携させる。

 idobata.ioがついに公式リリースされましたね!idobata.ioは気軽にBotやHookが設定できます。そして、有名なBotフレームワークとしてHubotがありますね。idobataではHubotのadapterが用意されているので、簡単にHubotとお話することができます。この記事では、HubotをHerokuにデプロイして、idobata.ioにJOINさせる方法を書いていきます。

nodeとnpmのインストール

 まずは、node.jsとnpmをインストールします。

$ brew install node

で入ります。Homebrewでは同時にnpmもインストールしてくれます。

hubotの準備

 idobata/hubot-idobata · GitHub の通りにやってあげれば良いです。まず、coffee-scripthubotをインストールします。

$ npm install --global coffee-script hubot

 次に、今回idobataと連携する用のhubot君を作成します。<path>には任意のディレクトリ名を入れましょう。これが作業用リポジトリとして生成されます。

$ hubot --create <path>
$ cd <path>

 idobata.io用のadapterをインストールします。

$ npm install --save hubot-idobata

idobata.ioの準備

Botを登録する

 Botを登録してAPIトークンを得ます。

f:id:FromAtom:20140414024341g:plain

Roomにbotを招く

 上記設定だけだと、OrganizationにBotが登録されただけです。Room自体にBotを招待してあげないといけません(1時間ハマった)。

f:id:FromAtom:20140414024338g:plain

Herokuへのデプロイ

 先ほど<path>の中で作業します。まずは、Procfileを編集して、

web: bin/hubot -a idobata

に編集しておきます。次にHerokuにデプロイする準備をします。

$ git init
$ git add .
$ git commit -m "Initial commit"
$ heroku create

Creating <your-app-name> done, stack is cedar
http://<your-app-name>.herokuapp.com/ | git@heroku.com:rosemary-britches-123.git
Git remote heroku added

 HerokuにデプロイされたHubotは、一定時間放置されるとIdling状態になってしまいます。これを回避するために、

$ heroku config:set HEROKU_URL=http://<your-app-name>.herokuapp.com

を実行しておきます。次に、先ほどのAPIトークンとBotの名前を、Herokuに設定します。

$ heroku config:set HUBOT_IDOBATA_API_TOKEN=<your-bot-api-token>
$ heroku config:set HUBOT_NAME=<your-bot-name>

Redisの準備

 データ永続化の為に、Redisのaddonを入れる必要があります。verifyの済んでいる人は、

$ heroku addons:add redistogo:nano

で良いです。済んでない人は、Herokuのページに行ってverifyしましょう。Redis To Goのnanoプランは無料ですが、addonを使う場合はクレジットカードの番号を入れてverifyをする必要があります。

デプロイ

 さてさて、デプロイです。

$ git push heroku master

 しばらく待ちます。

idobata.io上で確認

 Botが参加しているRoomに入って、@hubot pingと呼んであげましょう。 PONGが返ってきたら成功です!

f:id:FromAtom:20140414024344p:plain

まとめ

 お疲れ様でした。結構簡単に導入できたのではないでしょうか?後は、公開されているScriptsを導入して便利にしていきましょう!