Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
HubotをはじめるHubotをはじめる
nasa9084nasa9084
自己紹介自己紹介
名前
北村壮大 : Masahiro Kitamura
HN : nasa9084
所属
北海道大学
工学部
情報エレクトロニクス学科
コンピュータサイエンスコース
情報認識学研究室
botとはbotとは
チャットに常駐してコマンドを待ち受けて実行したり
決められた条件に従ってチャットに発言したり
HubotHubot
GitHub社謹製bot作成フレームワーク
特徴特徴
様々なチャットに対応
導入が簡単
簡単にスクリプトを書いて拡張できる
Hubotの構造Hubotの構造
RobotRobot
Hubotの本体
Adapterから情報を受け取って
scriptsに従って処理をして
Adapterに返事を返す
AdapterAdapter
チャットの状況をRobotに入力する
Robotの出力をチャットに伝える
公開されているAdapterの例公開されているAdapterの例
Service Adapter
IRC hubot-irc
Twitter hubot-twitter
HipChat hubot-hipchat
Slack hubot-sla...
ScriptsScripts
Co�eeScriptかJavaScriptで記述された動作ファイル
400以上のScriptsが標準で付属
GitHub等に多数公開
自分でも簡単に書ける
InstallInstall
Node.jsが必要
→anyenv/ndenv を使うのが簡単
**env**env
rbenv, pyenvなど、言語環境バージョン管理ツールの総称
簡単に導入できる
簡単に複数バージョンの言語環境を導入できる
簡単にバージョンを変更できる
→ node.js用は ndenv
anyenvanyenv
**env管理ツール
→導入しておくと、別の言語に挑戦するのが簡単
anyenv/ndenvを使ってnode.jsを導入するanyenv/ndenvを使ってnode.jsを導入する
$ anyenv install ndenv
(略)
Install ndenv succeeded!
Please reload...
**envの例**envの例
**env Language
goenv go
hsenv Haskell
jenv Java
ndenv Node.js
phpenv PHP
plenv Perl
pyenv python
rbenv Ruby
hubotを動かす準備hubotを動かす準備
$ npm install -g hubot coffee-script yo generator-hubot
$ mkdir botdir
$ cd botdir
$ yo hubot
インストールしたものインストールしたもの
hubot
Hubot本体
co�ee-script
Co�eeScriptの実行環境
yo
Yeoman(雛形作成ツール)
generator-hubot
Yeoman用Hubot雛形
hubotを動かしてみるhubotを動かしてみる
$ bin/hubot
ScriptsScripts
Hubotの動作を記述するCo�eeScript/JavaScriptファイル
hubot-scriptsを使うhubot-scriptsを使う
hubotに同梱された、たくさんのScripts
hubot-scripts.json に使いたい名前を書くと使える
に一覧があるhubot-scripts-catalog
hubot-scriptsの例hubot-scriptsの例
�le name 内容
coin.co�ee "heads"か"tails"のどちらかをランダムで返す
kittens.co�ee 猫の写真をランダムに返す
tasks.co�ee ...
GitHub等で公開されたものを使うGitHub等で公開されたものを使う
$ npm install --save nasa9084/scripts_for_hubot
→GitHubからインストールできる
external-scripts.j...
自分で作る自分で作る
自分でCo�eeScript/JavaScriptで動作を書いて使うことができる
scripts/ ディレクトリに入れて使う
Scriptの書き方Scriptの書き方
module.exports = (robot) ->
robot.hear /正規表現/, (res) ->
#何らかの処理
res.send 'hogehoge'
入力入力
robot.hear /正規表現/
正規表現に合致する投稿に対して動作
robot.respond /正規表現/
正規表現に合致する呼びかけに対して動作
robot.enter
ユーザが入室したら動作
robot.leave
ユーザが...
robot.respondrobot.respond
ロボット名を使った呼びかけに対して動作
robot.respond /hello/
hubot hello
hubot: hello
@hubot hello
に対して反応
出力出力
robot.send
単に反応
robot.reply
返信の形で反応
メッセージの取得メッセージの取得
module.exports = (robot) ->
robot.hear /正規表現/, (res) ->
#何らかの処理
res.send 'hogehoge'
res.matchにメッセージの配列が入っ...
メッセージの処理メッセージの処理
res.random <LIST>
リストからランダムに一つ選ぶ
例例
あいさつ
module.exports = (robot) ->
robot.hear /寝る/, (res) ->
res.send res.random [
"おやすみ",
"オヤスミ_〆(・∇・*)",
"おやすみ(。´-ω-`。)...
面白いものが書けたら・・・面白いものが書けたら・・・
github: nasa9084/scripts_for_hubot にPRしてください!
まとめ!まとめ!
Hubotは色々なところで使えるbotフレームワーク
slack, twitter, HipChat, and so on.
導入が簡単
yo hubot するだけ
簡単に動作を追加できる
沢山付属Scriptsがある
いろん...
Hubotをはじめる
Hubotをはじめる
Upcoming SlideShare
Loading in …5
×

Hubotをはじめる

219 views

Published on

http://digiporo.connpass.com/event/34018/
2016/07/31

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Hubotをはじめる

  1. 1. HubotをはじめるHubotをはじめる nasa9084nasa9084
  2. 2. 自己紹介自己紹介 名前 北村壮大 : Masahiro Kitamura HN : nasa9084 所属 北海道大学 工学部 情報エレクトロニクス学科 コンピュータサイエンスコース 情報認識学研究室
  3. 3. botとはbotとは チャットに常駐してコマンドを待ち受けて実行したり 決められた条件に従ってチャットに発言したり
  4. 4. HubotHubot GitHub社謹製bot作成フレームワーク
  5. 5. 特徴特徴 様々なチャットに対応 導入が簡単 簡単にスクリプトを書いて拡張できる
  6. 6. Hubotの構造Hubotの構造
  7. 7. RobotRobot Hubotの本体 Adapterから情報を受け取って scriptsに従って処理をして Adapterに返事を返す
  8. 8. AdapterAdapter チャットの状況をRobotに入力する Robotの出力をチャットに伝える
  9. 9. 公開されているAdapterの例公開されているAdapterの例 Service Adapter IRC hubot-irc Twitter hubot-twitter HipChat hubot-hipchat Slack hubot-slack
  10. 10. ScriptsScripts Co�eeScriptかJavaScriptで記述された動作ファイル 400以上のScriptsが標準で付属 GitHub等に多数公開 自分でも簡単に書ける
  11. 11. InstallInstall Node.jsが必要 →anyenv/ndenv を使うのが簡単
  12. 12. **env**env rbenv, pyenvなど、言語環境バージョン管理ツールの総称 簡単に導入できる 簡単に複数バージョンの言語環境を導入できる 簡単にバージョンを変更できる → node.js用は ndenv
  13. 13. anyenvanyenv **env管理ツール →導入しておくと、別の言語に挑戦するのが簡単
  14. 14. anyenv/ndenvを使ってnode.jsを導入するanyenv/ndenvを使ってnode.jsを導入する $ anyenv install ndenv (略) Install ndenv succeeded! Please reload your profile (exec $SHELL -l) or open a new session. $ exec $SHELL -l $ ndenv install --list Available versions: v0.1.14 v0.1.15 (中略) v6.2.2 v6.3.0 v6.3.1 iojs-v1.0.0 (以下略) $ ndenv install v6.3.1 (略) $ ndenv global v6.3.1
  15. 15. **envの例**envの例 **env Language goenv go hsenv Haskell jenv Java ndenv Node.js phpenv PHP plenv Perl pyenv python rbenv Ruby
  16. 16. hubotを動かす準備hubotを動かす準備 $ npm install -g hubot coffee-script yo generator-hubot $ mkdir botdir $ cd botdir $ yo hubot
  17. 17. インストールしたものインストールしたもの hubot Hubot本体 co�ee-script Co�eeScriptの実行環境 yo Yeoman(雛形作成ツール) generator-hubot Yeoman用Hubot雛形
  18. 18. hubotを動かしてみるhubotを動かしてみる $ bin/hubot
  19. 19. ScriptsScripts Hubotの動作を記述するCo�eeScript/JavaScriptファイル
  20. 20. hubot-scriptsを使うhubot-scriptsを使う hubotに同梱された、たくさんのScripts hubot-scripts.json に使いたい名前を書くと使える に一覧があるhubot-scripts-catalog
  21. 21. hubot-scriptsの例hubot-scriptsの例 �le name 内容 coin.co�ee "heads"か"tails"のどちらかをランダムで返す kittens.co�ee 猫の写真をランダムに返す tasks.co�ee タスク管理をしてくれる weather.co�ee 天気を返す
  22. 22. GitHub等で公開されたものを使うGitHub等で公開されたものを使う $ npm install --save nasa9084/scripts_for_hubot →GitHubからインストールできる external-scripts.json に追記で動作
  23. 23. 自分で作る自分で作る 自分でCo�eeScript/JavaScriptで動作を書いて使うことができる scripts/ ディレクトリに入れて使う
  24. 24. Scriptの書き方Scriptの書き方 module.exports = (robot) -> robot.hear /正規表現/, (res) -> #何らかの処理 res.send 'hogehoge'
  25. 25. 入力入力 robot.hear /正規表現/ 正規表現に合致する投稿に対して動作 robot.respond /正規表現/ 正規表現に合致する呼びかけに対して動作 robot.enter ユーザが入室したら動作 robot.leave ユーザが退室したら動作 robot.topic チャットルームのトピックが変更されたら動作
  26. 26. robot.respondrobot.respond ロボット名を使った呼びかけに対して動作 robot.respond /hello/ hubot hello hubot: hello @hubot hello に対して反応
  27. 27. 出力出力 robot.send 単に反応 robot.reply 返信の形で反応
  28. 28. メッセージの取得メッセージの取得 module.exports = (robot) -> robot.hear /正規表現/, (res) -> #何らかの処理 res.send 'hogehoge' res.matchにメッセージの配列が入っている メッセージ本体 正規表現のグループに合致した部分
  29. 29. メッセージの処理メッセージの処理 res.random <LIST> リストからランダムに一つ選ぶ
  30. 30. 例例 あいさつ module.exports = (robot) -> robot.hear /寝る/, (res) -> res.send res.random [ "おやすみ", "オヤスミ_〆(・∇・*)", "おやすみ(。´-ω-`。).zZ", "|・ω・`)おやすみ。", "(つ∀-)オヤスミー", "(o・д・)尸~~おやすみ~♪" ]
  31. 31. 面白いものが書けたら・・・面白いものが書けたら・・・ github: nasa9084/scripts_for_hubot にPRしてください!
  32. 32. まとめ!まとめ! Hubotは色々なところで使えるbotフレームワーク slack, twitter, HipChat, and so on. 導入が簡単 yo hubot するだけ 簡単に動作を追加できる 沢山付属Scriptsがある いろんな人が公開しているので簡単に増やせる 自分で書くのも簡単 Co�eeScript/JavaScriptで書ける → Hubot、楽しい! ←

×