Botを作って、いろいろと便利な機能を提供したい。
関連する情報を検索すると、Hubot + Hipchat用のアダプタという例が多数あった。
しかし、Debian Wheezy で試してみると、Hipchatのアダプタ(hubot-hipchat)のインストールに失敗してしまう。
最終的には、node.js のバージョン落として、v0.10.38でインストールできたのだけど。
気に入らなかったので、RubyでHipchatと連携できるものが無いのか調べたら、
Lita - A robot companion for your company's chat room
というのがあった。
こちらの解説記事がまとまっており、このページに書かれている手順で、動かすことができた。
以下、Botでinfo表示、whois、Googleのイメージ検索ができるようにする設定を、まとめておく
環境
環境は以下の通り。- Debian Wheezy
- rbenvでruby-2.2.0をインストール済み
- apt-getでredis-server をインストール済み
準備
Hipchatで利用するBotアカウントを作成しておく。アカウント作成にはメールアドレスが必要。
gmailのアカウントがあれば、メールアドレスに+を使って、複数アカウトを作る方法がお手軽だ。 (ここらへんを参考に。)
Litaのインストール
Litaはgemでインストールできる。$ gem install lita
Botの作成
Bot用のプロジェクトを作る。$ lita new bot
botディレクトリに、新しいLitaのプロジェクトが作成される。
Gemfileを編集する。
HipChatアダプタを使う。
gem "lita-hipchat"の行をコメントアウトする。
$ bundle install
で反映させる。
lita_config.rbを編集する。
# 名前を合わせておかないと起動時にエラーになるので注意。 config.robot.name = "Lita Bot" # Hipchatを利用する。 config.robot.adapter = :hipchat # ポート番号はデフォルトは1234になっていたが、6379にしないと起動しなかった。 config.redis.host = "127.0.0.1" config.redis.port = 6379 # Hipchatの管理画面からXMPP/Jabber Account Informationに表示されるJabber IDを設定する。 config.adapters.hipchat.jid = "省略@chat.hipchat.com" # Hipchatのアカウントのパスワード config.adapters.hipchat.password = "省略" # trueにしておくと、デバッグログが表示される。接続できない場合に便利。 config.adapters.hipchat.debug = true # 利用するChat roomの名前か :all config.adapters.hipchat.rooms = :all
Litaの起動
$ lita設定が間違っているとエラーログが表示されるので確認する。
問題がなければ、BotはChat roomに参加する。
Hipchatで動作確認
@lita infoLitaとRedisの情報が表示される。
whoisとGoogleのイメージ検索の利用
Gemfileに次の設定を追加する。gem "lita-google-images" gem "lita-whois"lisaを再起動する。
whoisは
@lita whois ホスト名
イメージ検索は
@lita image cat
で利用できる。