@nqounetです。

おかげさまで最近いそがしく、なかなか更新できませんがたまにはアウトプットしようと思います。

今日は、Hubotをslackで使う時に、yeomanが便利だった話をします。

直接インストールするのは deprecated になっていた

正確には覚えていませんが、Hubotをグローバルに入れようとした時にdeprecatedになっているのに気づきました。

なんと、yeomanのgeneratorに存在するのでそっちを使え、ということらしいです。

1
$ npm install -g yo generator-hubot

私の場合は、ndenvを使用しているので、グローバルに入れたあとはrehashが必要です。

1
$ ndenv rehash

yoコマンド炸裂

yoコマンドを使うと、アプリのひな形を作るかのように簡単にチャットボットが作成できます。

1
2
3
$ mkdir -p /path/to/my-hubot
$ cd /path/to/my-hubot
$ yo hubot

このジェネレーターの賢いところは、全て対話式で完成してしまうことです。

訊かれるのは以下のこと。「()」は入力した値だと思ってください。

1
2
3
4
? Owner: (nqounet)
? Bot name: (slackbot)
? Description: (A simple helpful robot for your Company)
? Bot adapter: (slack)

slackやidobataなどのチャットツールでhubotを使うにはadapterが必要なのですが、そのadapterのインストールもこれで完了してしまいます。

これで実質完成です。

herokuで使うためにgithubなどにpushしておくと良さそうです。

1
2
3
4
5
$ git init
$ git add -A
$ git commit -m 'initial commit'
$ git remote add origin http://github.com/nqounet/slackbot-test.git
$ git push -u origin master

herokuデビュー

これまでherokuには縁がなかったのですが、調べているとhubotにはherokuがとても合っているということなので、ようやくデビューしました。

heroku toolbeltというherokuのコマンドラインツールをインストールしておけば、先ほど作ったままデプロイまでできます。

1
2
3
4
5
6
7
8
9
$ heroku login
$ heroku create
$ heroku rename nqounet-slackbot-test
$ heroku config:add TZ=Asia/Tokyo
$ heroku config:add HUBOT_SLACK_TEAM=nqounet
$ heroku config:add HUBOT_SLACK_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXX
$ heroku config:add HEROKU_URL=https://nqounet-slackbot-test.herokuapp.com/
$ heroku addons:add redistogo
$ git push heroku master

使ってみると、驚くほどあっさりデプロイ出来ました。

configは、コマンドラインが不安であれば、ウェブからも設定できますので、後で確認するとよいでしょう。

参考になる資料

公式サイトは英語ですが、最新の情報なのでざっと目を通しましょう。

わかりにくかったところは日本語で補完しましょう。

いきなり難しいことをやろうとしても大体はうまくいかないので、少しずつできることを増やしていけば良いです。

使ってみてわかりましたが、heroku最高です。

Toolbeltと組み合わせれば面倒も臆することもなくデプロイできます。

コレがあれば、少しずつの変更でも気軽にデプロイできます。

gitでpushすれば良いのですから。