連載
» 2014年08月20日 18時00分 公開

チャットボットでチーム開発効率化入門(1):GitHub製フレームワークHubotの概要とインストール、チャットアプリと連携する基本的な使い方 (2/2)

[天沼健仁,TIS株式会社]
前のページへ 1|2       

チャットアプリとHubotを連携する

 Hubotと連携可能なチャットサービスは多々ありますが、今回は、「Kandan」というOSSのチャットアプリを利用する方法を紹介します。とはいえ、サービスとして提供されているHipChatやSlackなどは品質が高く、簡単に利用開始でき、運用の手間も掛からないので、特別な理由がない限りはチャットサービスの利用を検討することをお勧めします。

 Kandanのソースコードは下記GitHub上から入手できます。

チャットアプリ環境の構築

 最新のKandanだと、deviseなどのGemのバージョンが上がってしまい、うまく認証が機能しなかったので「v1.2」時点のタグをチェックアウトし、進めていきます。

$ git clone https://github.com/kandanapp/kandan.git
$ cd kandan
$ git checkout v1.2
$ sudo apt-get install ruby1.9.1-dev ruby-bundler libxslt-dev libxml2-dev libpq-dev libsqlite3-dev gcc g++ make nodejs

$ gem install execjs

 今回は手順簡略化のため、Database adapterをPostgreSQLからSQLiteに変更し、bundlerでGemをインストールします。developmentとtestのGemは不要なので、除外してインストールしました。

$ vim Gemfile
# Database adapters
-gem 'pg'
+gem 'sqlite3'
diff:Gemfile

$ bundle install --without development test

 DBはSQLiteを使うことにしたので、vimを軌道して「database.yml」に以下を追加します。

$ vim config/database.yml

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000
yaml:database.yml

 以下のコマンドでデータベースを作成します。

$ RAILS_ENV=production bundle exec rake db:create db:migrate kandan:bootstrap

 「config.serve_static_assets」の値を「true」にしてプリコンパイルを有効にし、プリコンパイルを実施しておきます。

$ vim config/environments/production.rb
# Disable Rails's static asset server (Apache or nginx will already do this)
-  config.serve_static_assets = false
+  config.serve_static_assets = true
diff:production.rb

$ RAILS_ENV=production bundle exec rake assets:precompile

チャットアプリの動作確認

 ここまででチャットアプリを起動する準備が整いましたので、起動しましょう。

$ bundle exec thin start -e production

 起動後、ユーザーサインアップすると以下のように表示されます。

 ちなみに、管理者アカウントはデフォルトで「Admin」、パスワードは「kandanappadmin」です。

Hubotとつなぐためのアクセスキーを取得

 次に、KandanにHubotアカウントを作成し、Hubotとつなぐためのアクセスキーをあらかじめ取得しておきます。

# Hubotアカウント作成
$ RAILS_ENV=production bundle exec rake kandan:boot_hubot
# アクセスキー取得
$ RAILS_ENV=production bundle exec rake kandan:hubot_access_key
Your hubot access key is YOUR_KANDAN_ACCESS_KEY

アダプターでHubotとチャットアプリの連携

 HubotとKandanを連携するのに「hubot-kandan」というKandan用アダプターを利用します。

 Kandanに合わせ、動作が確認できているv2.4.7のHubotを取得し、環境を構築します。

$ wget https://github.com/github/hubot/archive/v2.4.7.zip
$ unzip v2.4.7.zip
$ cd hubot-2.4.7
$ npm install
$ make package
$ cd hubot
$ git clone https://github.com/kandanapp/hubot-kandan.git node_modules/hubot-kandan
$ npm install faye
$ npm install ntwitter

 起動時に「Invalid version: "1.0"」とエラーが出てしまうので、「node_modules/hubot-kandan/package.json」の「"version"」を「"1.0.0"」に修正します。

   "name":        "hubot-kandan",
-  "version":     "1.0",
+  "version":     "1.0.0",
   "author":      "kandan",
diff:package.json

 Kandanと連携するための環境変数を設定します。

export HUBOT_KANDAN_HOST=YOUR_KANDAN_HOST
# Portが80以外であれば設定する
export HUBOT_KANDAN_PORT=YOUR_KANDAN_PORT
# 先ほど取得したアクセスキー
export HUBOT_KANDAN_TOKEN=YOUR_KANDAN_ACCESS_KEY
# info以外に設定する場合
export HUBOT_LOG_LEVEL=debug

 adapterに「kandan」を指定して実行します。

$ ./bin/hubot -a kandan

Hubotがチャットに参加したら、こうなる

 先ほど起動したKandanにアクセスすると、Hubotがチャットに参加しているのが確認できます。

 「@hubot pug me」でHubot宛てにパグ画像を要求したり、「ping」「ship it」などを投稿し、Hubotが反応するか確認してみましょう。

次回からは、HubotをGitBucketやJenkinsなどと連携

 今回は、HubotのインストールからOSSのチャットアプリをインストールし、チャット上からHubotと対話するまで行いました。

 次回からは、もう少し実践的に、HubotをGitBucketやJenkinsなどと連携させて、Hubotを中心とした開発スタイルを紹介します。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。