Idobata で Hubot が hotoke

大変ご無沙汰しておりますこちらのブログです。
年明けより「ソフトウェアエンジニア」ということでそれはそれは毎日楽しく刺激的なお勉強をしていてすべて記録していきたいところですがそんな余裕がない。
職だけでなく、籍まで転じてしまったので生まれ変わった気分です。

どんな職場か気になったらぜひ一度遊びにいらしてください
よちよち.rb のミートアップ会場になるときもあります。


本題は、タイトルの通り、Idobata で Hubot です。
今日ご近所よちよチストの @ta1kt0me と Hubot に挑戦したので、その記録を残しておこうと思います。

環境構築

nodebrew

$ curl -L git.io/nodebrew | perl - setup
$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.zshrc
$ source ~/.zshrc

@udzura さんのチュートリアルでは path を .bash_profile に記述していますが、私は zsh を使っているので。

$ nodebrew install-binary v0.10.28
$ nodebrew use v0.10.28
$ npm install -g coffee-script hubot

チュートリアルをそのまま実行しましたが、nodebrew の最新のバージョンを、というときは

$ nodebrew install-binary latest

です。(nodebrewの README 参照)

nodebrew のバージョンを複数インストールしているときは、それぞれで coffee-script や hubot を npm istall しないといけないみたいです。
rbenv と gem みたいだなと思いました。

Hubot プロジェクトをつくる

チュートリアルには、

$ hubot -c yawaraka-hubot

とありますが、これだと

'hubot --create' is deprecated. Use the yeoman generator instead:
    npm install -g yo generator-hubot
    mkdir -p yawaraka-hubot
    yo hubot
See https://github.com/github/hubot/blob/master/docs/README.md for more details on getting started.

と出てきますので、↑の通りにしました。

yo hubot でプロジェクトできるの!かっこいい!!

ちなみに、yo hubot する前に、プロジェクト直下に移動しましょう。
ということで、正確にコマンドを残すと、

$ npm install -g yo generator-hubot
$ mkdir -p yawaraka-hubot
$ cd yawaraka-hubot
$ yo hubot

ところでどうして mkdir に -p をつけたのでしょうか?謎。
-pオプションを使用するとディレクトリを含んだディレクトリを複数作成できる。
ツリー構造のディレクトリを作りたい時につけるオプションのようだと理解しましたが、この場合は必要なさそう。
でもつけなくて怒られるのめんどくさいから mkdir には必ず -p つけておこう、みたいなこともあるんでしょうか。


そんなこんなで yo したので、Hubot さんがあらわれて、いろいろ聞いてきます!

こういうのテンションあがりますね!

? Owner: <ここは私のIDとメールアドレスがサジェストされました。なぜ?>
? Bot name: yawaraka-hubot
? Description: my first hubot
? Bot adapter: (campfire) idobata
? Bot adapter: idobata

Idobataで動かしてみる予定だったので、idobata と入力しました。

ping

さあ!動かしてみましょう!!

$ ./bin/hubot
yawaraka-hubot> yawaraka-hubot ping
PONG

やったね!!

スクリプトを書いてみる

scripts ディレクトリ以下に .coffee ファイルを置いておけばOKということで、好きなファイルをつくりましょう。
はじめっからある example.cofee には例文がいっぱい載っているので、これを参考に書くとよさそうです。
チュートリアルにも例文がありますので、いろいろ書いてみました。
(省略)

Idobata の設定と、Heroku にデプロイ

ここからは、idobata-hubot を参考にしました。

Idobata の ROOM SETTINGS -> Bots -> +New bot で Token が取得できます。
ここで Name やアイコンも設定できます。
この Token をあとで Heroku に伝えますので。

これの通りに、Heroku にログインしてデプロイします。

$ git init してコミットしておきましょう。
$ heroku login
$ heroku create
$ heroku config:set HUBOT_IDOBATA_API_TOKEN=<さっきのTokenをここに>
$ heroku config:set HUBOT_NAME=<Nameをここに>
$ git push heroku master

ここで注意したいのは、ここで設定したHUBOT_NAMEと、bin/hubot や bin/hubot.cmd に書かれている name が一致しないと動きません。
それと、このままだとこの Hubot はそのうち眠りについてしまうので、もういっこ設定が必要です。
heroku logs すると下記のようなメッセージがでているので、

ERROR hubot-heroku-alive included, but missing HUBOT_HEROKU_KEEPALIVE_URL. `heroku config:set HUBOT_HEROKU_KEEPALIVE_URL=$(heroku apps:info -s  | grep web_url | cut -d= -f2)`

実行しましょう。

$ heroku config:set HUBOT_HEROKU_KEEPALIVE_URL=$(heroku apps:info -s  | grep web_url | cut -d= -f2)

Idobata で確認してみる

hotoke かわいい!

まとめ

これから CoffeeScript を書いてみようということで、手はじめに Hubot を hotoke にしてみました。
思ったより手軽にできて、しかもかわいいので、CoffeeScript 力をあげて、育てていきたいと思いました。