大晦日!
今日は個人的に楽しみにしていた ruboty で遊んだので、その記録をする。ruboty とは、Ruby 製の Hubot クローン。
前提
- 自分しか join していない slack アカウント・チームがある
Deploy to heroku
ボタンもあるけど、fork してそれをデプロイすることにする
ゴール
- Ruby製HubotクローンのRubotyをSlackで動かす を参考に、上記 slack に ruboty を住まわせる
- ただ住まわせるだけではつまらないので、簡単な会話ができたりすると嬉しい!
- また、ruboty plugin(gem)の追加の都度 heroku へのデプロイをするのも面倒なので、GitHub Sync も試してみたい
やったこと
1. slack への設定・bot 用 slack アカウントの作成
んで、bot 用 slack アカウントの作成。
はい。
slack に作ってるチームが shitemil
なので、bot の名前は milmil
ちゃん。アイコンはしばけん。
2. ruboty を fork して clone
GitHub - r7kamura/ruboty-template: A template to create and deploy your ruboty on slack. を fork、それを git clone
する。
3. heroku に deploy
$ heroku create --app milmil
$ git push heroku master
$ heroku addons:add redistogo
4. 環境変数を設定
app.json に書かれているような環境変数をそれぞれ設定していく。
パスワードは XMPP Gateway用パスワード、らしい。
Account > Settings > Gateways
から見れる。
5. Dynos を設定
これも Ruby製HubotクローンのRubotyをSlackで動かす にある通り。
6. 話しかけてみる
...きゃわわ!
7. master へ push したら heroku にも push(deploy)されるようにする
いわゆる GitHub Sync。まだベータ版ということだけど、今回みたいなゆるい用途にはちょうどよさげ。
$ heroku labs:enable github-sync
そして当該 heroku app の Code タブを見てみると、下記のようになっている。
見ると、Deploy changes with GitHub
とある。それそれ!Connect to GitHub
をポチッとな。
認証後、fork した ruboty-template のリポジトリと connect。
なんかいくつかでてきたけど、今回は真ん中の Automatic deploys
が目的。
なので、そこにあるボタンを押す。
よし。 GitHub 側の webhook のところにも変化が。
これの動作確認も含めて、"ruboty と会話をするための変更" を master に対して行ってみよう。
8. ruboty とお話できるようにする
といっても難しいことは何一つなく、GitHub - r7kamura/ruboty-talk: Talk with you if given message didn't match any other handlers. の gem を使えばいいだけ。
ただこれが docomo の 雑談会話API を使っているので、そのAPI KEY だけ、取得し環境変数 DOCOMO_API_KEY
に設定しておく。
https://dev.smt.docomo.ne.jp/?p=docs.api.page&api_docs_id=3
gem を追加する PR を作成し、マージしてみる。
...これで、いいんだよな。
おもむろに heroku logs
してみる。
2014-12-31T03:35:57.645118+00:00 heroku[api]: Deploy d22daa1 by a.know.3373 2014-12-31T03:35:57.645201+00:00 heroku[api]: Release v11 created by a.know.3373 2014-12-31T03:35:57.879896+00:00 heroku[bot.1]: State changed from up to starting 2014-12-31T03:36:00.227922+00:00 heroku[bot.1]: Starting process with command `bundle exec ruboty`
お、なんだかよさげ! bot に話しかけてみる。
...きゃわわ!!