Hubot
Heroku
Idobata

idobata 経由で Hubot と会話をしよう

More than 3 years have passed since last update.

目的

  • idobata 経由で Hubot と会話すること

Hubot

  • GitHub が開発しているチャット用の bot フレームワーク
  • 幅広いチャットサービスの bot として導入することができる
  • 公式ベージ
  • ソースコード

idobata

スクリーンショット 0026-10-12 20.50.43.png

  • 今回はこの idobata 経由で Hubot と会話をする

Hubot の導入

  • 注 : Ubuntu 14.04 上で作業をしています

Node.js のインストール

  • hubot のインストールに npm を使うため、 node.js をインストールする
$ wget git.io/nodebrew
$ perl nodebrew setup
$ export PATH=$HOME/.nodebrew/current/bin:$PATH
$ nodebrew ls-remote
$ nodebrew install-binary v0.11.14
$ nodebrew use v0.11.14

hubot のインストール

$ npm install -g hubot coffee-script
# Hubot ひな形作成、起動
$ hubot --create mybot
$ cd mybot
$ ./bin/hubot
  • Redis を入れていないと下記のエラーが出る
Hubot> [Mon Oct 06 2014 01:03:49 GMT+0000 (UTC)] ERROR [Error: Redis connection to localhost:6379 failed - connect ECONNREFUSED]
[Mon Oct 06 2014 01:03:49 GMT+0000 (UTC)] ERROR [Error: Redis connection to localhost:6379 failed - connect ECONNREFUSED]
[Mon Oct 06 2014 01:03:50 GMT+0000 (UTC)] ERROR [Error: Redis connection to localhost:6379 failed - connect ECONNREFUSED]
  • エラー解消のため Redis をインストール
$ sudo apt-get update
$ sudo apt-get -yV upgrade
$ sudo apt-get install redis-server
  • Hubot 起動から終了
$ ls
bin  external-scripts.json  hubot-scripts.json  node_modules  package.json  Procfile  README.md  scripts
$ ./bin/hubot
Hubot> [Mon Oct 06 2014 01:15:37 GMT+0000 (UTC)] INFO Data for hubot brain retrieved from Redis
Hubot> hubot ping
# Hubot からの応答
Hubot> PONG 
# exit で終了
Hubot> exit

idobata との連携

$ npm install hubot-idobata --save

idobata の環境構築

  • アカウント取得
  • 好きな名前で Organization の作成
  • 作成した Organization に Room を作成
  • 作成した Room に bot を追加する
    • 今回は idobot の名前で追加

スクリーンショット 0026-10-12 21.59.26.png

  • API Token を確認しておく

hubot を Heroku で動かす

  • Hubot を常時動かすために適当な PaaS 上にデプロイする
    • 今回は、 Heroku 上で動かすことにする
  • Procfile を編集
    • Procfile : Heroku 上で Dynos が実行するコマンド
    • Hubot を起動するようにする
Procfile
web: bin/hubot --adapter idobata --name idobot
  • heroku へのデプロイ
$ heroku create
Creating afternoon-taiga-4406... done, stack is cedar
http://afternoon-hoge-4406.herokuapp.com/ | git@heroku.com:afternoon-hoge-4406.git
# appname は create コマンドで表示されたものを使用する
$ heroku config:set HEROKU_URL=http://<appname>.herokuapp.com
# idobata に bot 追加時に確認した API Token を入力する
$ heroku config:set HUBOT_IDOBATA_API_TOKEN=hogehogehoge
# idobata に登録した bot の名前を入力する
$ heroku config:set HUBOT_NAME=idobot
# データ永続化のために Redis の addon を導入
# 事前に Heroku 上の設定でクレジットカードの登録を済ませておく必要がある
$ heroku addons:add redistogo:nano
# Heroku へデプロイする
$ git push heroku origin

Hubot に話しかける

  • idobata の Room を開き、 作成した idobot に話しかける

スクリーンショット 0026-10-12 22.36.37.png

  • すぐに返事してくれれば OK