Hello Hubot
これまでは、hubot --create を利用していたが、現在は非推奨になっています。 generator-hubot を使う形式となるため、この記事の実施前に、Windows で hubot を動かす の記事を参考に、hubot の実行環境を整えて置いて下さい。
bot 用の作業ディレクトリを用意する
bot 用の作業ディレクトリを用意し、generator を起動します。
c:\hubotwork>mkdir myhubot c:\hubotwork>cd myhubot
bot を作成する
yo hubot を実行し、名前などいくつかの質問に答えます。今回はコンソール上で動作する簡単な bot の作成のため、 adapter には、デフォルト(campfire) を指定してください。
c:\hubotwork\myhubot>yo hubot _____________________________ / \ //\ | Extracting input for | ////\ _____ | self-replication process | //////\ /_____\ \ / ======= |[^_/\_]| /---------------------------- | | _|___@@__|__ +===+/ /// \_\ | |_\ /// HUBOT/\\ |___/\// / \\ \ / +---+ \____/ | | | //| +===+ \// |xx| ? Owner: KUSAMAKURA ? Bot name: HAL ? Description: hello world robot. ? Bot adapter: campfire ---------------------------------------------- _____________________________ _____ / \ \ \ | Self-replication process | | | _____ | complete... | |__\\| /_____\ \ Good luck with that. / |//+ |[^_/\_]| /---------------------------- | | _|___@@__|__ +===+/ /// \_\ | |_\ /// HUBOT/\\ |___/\// / \\ \ / +---+ \____/ | | | //| +===+ \// |xx|
以上で bot 完成。
動作確認
デフォルト機能の ping を実行してみます。bot ディレクトリの bin/hubot を実行して、bot を起動します。
c:\hubotwork\myhubot>bin\hubot connect deprecated multipart: use parser (multiparty, busboy, formidable) npm module instead node_modules\hubot\node_modules\express\node_modules\connect\lib\middleware\bodyParser.js:56:20 connect deprecated limit: Restrict request size at location of read node_modules \hubot\node_modules\express\node_modules\connect\lib\middleware\multipart.js:86:15 Hubot> [Wed Feb 04 2015 15:27:34 GMT+0900 (東京 (標準時))] ERROR hubot-heroku-alive included, but missing HUBOT_HEROKU_KEEPALIVE_URL. `heroku config:set HUBOT_HEROKU_KEEPALIVE_URL=$(heroku apps:info -s | grep web_url | cut -d= -f2)` [Wed Feb 04 2015 15:27:34 GMT+0900 (東京 (標準時))] INFO Using default redis on localhost:6379
起動後に ping を実行. 返答あれば、OKかと思います。
Hubot> hubot ping PONG Hubot>
hello world.
bot が挨拶するようにします。
Scriptの作成
下記の hello.coffee スクリプトを作成し、myhubot ディレクトリの ./scripts に配置します。
# Commands: # hubot three laws - Reply with Three Laws of Robotics module.exports = (robot) -> robot.respond /.*three laws.*/i, (msg) -> msg.send " 第一条 ロボットは人間に危害を加えてはならない。また、その危険を看過することによって、人間に危害を及ぼしてはならない。\n 第二条 ロボットは人間にあたえられた命令に服従しなければならない。ただし、あたえられた命令が、第一条に反する場合は、この限りでない。\n 第三条 ロボットは、前掲第一条および第二条に反するおそれのないかぎり、自己をまもらなければならない。"
スクリプトの動作確認
スクリプト配置完了後、bot を起動します。 最初の .hubot_history ファイルの削除は、Windows だけだとは思うのですが、2回目以降の bot の起動時に read Error が発生する場合の対処方法になります。Linuxではどーなんだろうか。 bot 起動後、「three laws」の文字列を入力すると、ロボット工学三原則が返されます。
c:\hubotwork\myhubot>rm .hubot_history c:\hubotwork\myhubot>bin\hubot ------ Hubot> hubot three laws 第一条 ロボットは人間に危害を加えてはならない。また、その危険を看過することによって、人間に危害を及ぼしてはならない。 第二条 ロボットは人間にあたえられた命令に服従しなければならない。ただし、あたえられた命令が、第一条に反する場合は、この限りでない。 第三条 ロボットは、前掲第一条および第二条に反するおそれのないかぎり、自己をまもらなければならない。 Hubot>