Help us understand the problem. What is going on with this article?

Hubotで始める簡単Bot開発

More than 5 years have passed since last update.

こんにちは,sai研M1の @hico_horiuchi です.
この記事は SLP KBIT Advent Calendar 2014 の16日目です.
今回は,最近ハマっている Hubot について書きます.

もくじ

  • BotとHubotの概要について簡単に説明します.
  • Windows上でHubotを動かしてみよう.
  • 簡単なHubot Scriptを作ってみよう.

Botとは?

チャットに常駐して,発言に応じて応答を返したり,決められた条件に従って発言して参加者に通知したりするようなプログラムのことをBotと呼びます.
Botを使うことで,定型的な処理を自動化したり,人工無能のような受け答えをさせることでチャットを楽しくしたりすることができます.

TwitterのBotを想像してもらうと分かりやすいかな.
「特定のキーワードに反応する」「リプライを返す」「定期的に呟く」など,やることは同じです.

Hubotとは?

Hubotとは GitHub が開発したBotフレームワーク(枠組み)です.
CoffeeScript(またはJavaScript)で処理を書くことで,簡単に機能を拡張できます.
また,TypetalkやTwitterなど,複数のサービスに対応させることができます.

「フレームワーク」なので,実際の処理部分だけの開発で済みます.
Botとしての基本的な機能(チャットの取得と発言など)は,Hubotが提供してくれます.

Windowsで動かす

Hubotは Node.js というJavaScript環境上で動作します.
今回は,nodist というWindows用のNode.js環境をインストールします.

  1. コチラ からnodistの最新版をダウンロード
  2. nodist-master.zipを解凍して,C:\nodistに配置する.
  3. コマンドプロンプトを開き,以下のコマンドを実行する.
> setx /M PATH "C:\nodist\bin;%PATH%"
> setx /M NODIST_PREFIX "C:\nodist"
> nodist selfupdate
> node -v
v0.10.33

次にHubotをインストールします.
引き続きコマンドプロンプトで作業します.

> npm install -g hubot coffee-script yo generator-hubot
> mkdir C:\nodist\mybot
> cd C:\nodist\mybot
> yo hubot

対話形式でHubotの初期設定をしますが,全てEnterを押してください.
終わったら,Hubotを実行してみましょう.

> bin/hubot.cmd
Hubot> hubot ping
PONG
Hubot> hubot time
Server time is: Tue Dec 16 2014 15:35:30 GMT+0900 (東京 (標準時))

こんな感じでhubotに続けてコマンドを打つと,対応する結果を返してくれます.

簡単なscriptを作る

「SLPの活動時間を教えてくれる」scriptを作ってみましょう.
C:\nodist\hubot\scripts\slp.coffeeを作って,好きなエディタで開いてください.
開けたら,以下の内容をコピペします.

module.exports = (robot) ->
  robot.respond /slp$/i, (msg) ->
    msg.send 'SLPは毎週水曜日と金曜日の19時から活動しています!'

robot.respondは,hubotとBotの名前を付けた発言に反応します.
その後の/slp$/iという正規表現にマッチすると,msg.sendで発言します.
実際に実行して,動くか確認してみましょう.

> bin/hubot.cmd
Hubot> hubot slp
SLPは毎週水曜日と金曜日の19時から活動しています!

まとめ

BotとHubotについて解説した後,実際にHubotを動かしたり,scriptを書いたりしてみました.
今回は単純なコマンドに反応させただけですが,Hubotは他にも色んなことができます.

  • GitHubのリポジトリの更新(pushissueなど)を通知
  • 他サービスのAPIを呼出(アニメの放送時間をチェックなど)

Hubot Advent Calendar 2014@bouzuya さんがHubotについて連載しています.
興味のある人はチェックしてみてください.

また,TypetalkのSLPトピックに私が作ったHubot「Huboco」が居ます.
ぜひ話しかけてあげてください.

参考文献

hiconyan
大手町でクラウドエンジニアしてます。うどん大学院 情報系出身。趣味は料理と映画、カメラ。
https://hiconyan.page/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした