読者です 読者をやめる 読者になる 読者になる

Life, Education, Death

プログラミング以外でも思ったことをつらつらと書きたい

hubotのインストールからアダプタ、スクリプトの自作まで

※2014/11/15 スクリプトの書き方加筆

オレオレシステムに投稿するためのボット作成にhubotを使ってみました。
公式ページの最新ぽいやり方でインストールを進めてみてハマったところをメモ。

インストール


hubot/README.md at master · github/hubot · GitHub

より

% npm install -g yo generator-hubot

 でyeomanというテンプレートからプロジェクト生成を行うツールとhubot用のテンプレートをインストール。

% mkdir myhubot
% cd myhubot
% yo hubot

適当にフォルダを作ってyoコマンドを使ってプロジェクト作成のウィザードを起動します。色々聞かれますが練習なら何も入力しなくていいはずです。
以下では全てmyhubotフォルダをカレントディレクトリに設定している前提です。

※既にhubotをインストールしていたらyo hubotのところでコケました

アダプタを作る

オレオレシステムに投稿するためのアダプタを作ります。投稿やタイムラインの受信を実装すればオレオレシステムにボットが動かせます。

node_modules/adapters/にアダプタのソースをおけばいいので

% cp node_modules/hubot/src/adapter.coffee node_modules/hubot/src/adapters/myadapter.coffee

を実行してテンプレートをコピー。
node_modules/hubot/src/robot.coffeeの

HUBOT_DEFAULT_ADAPTERS = [
  'campfire'
  'shell'
  'myadapter'
]
辺りを自作したアダプタ名を追加して保存する。

アダプタの実装方法はサンプルを見るかググった方が詳しいページが出てくるので割愛します。

% bin/hubot -a myadapter

で動作確認します。エラーが出なければ成功。

スクリプトを作る

スクリプトは実際のボットの動作を記述するもので、前述のアダプタのおかげで特定のシステム依存のコードを書く必要がないので使い回しが楽チン。
スクリプトにもテンプレートがあるのでそれを使えばOK。スクリプトはscriptsフォルダに配置したものが全て読み込まれるようです。
scripts/example.coffeeをコピーしてオレオレスクリプトを書き始めると良いでしょう。

割と公式の情報も充実しているので慣れてきたら読んでみようと思います。

hubot/adapters.md at master · github/hubot · GitHub

hubot/scripting.md at master · github/hubot · GitHub

 

実際に書き始めてみたら、self.emit 'connected'を実行しないとスクリプトの読み込みが進まなかったのでしばらくハマりました。
何かハマったら

export HUBOT_LOG_LEVEL="debug"

してから実行するとデバッグログが出るようになるので何かヒント見つかるかもしれません