【Hubot】寂しかったので、お喋りする相手を作る -下準備編-
雑談用のslackチャンネルを作ったけど、誰もいない...
相手がいないなら作ればいいじゃない!
Slackとは
Slackとは、チャットツールである。残念ながらSlackマスターではないので、細かい説明はできないが、とにかくすごいチャットツール。
そしてこのSlack、Appという、機能を簡単に追加するための環境が整っている。その中にHubotがある。
Hubotとは
要するに、ボットだ。特定のキーワードに反応して、返事をすることが出来る。今回は、これの中身を作っていく。
設定完了!
あれやこれやと設定完了した。
カテゴリ | 値 | 説明 |
名前 | tanaka58 | た(ただの)な(なんでもない)か(会話ロボ)58(私の名seisyo58より) |
アイコン | キャノン(XLR)端子(オス) | 放送部でいつもお世話になっているから(謎) |
お喋りするなら、田中さんがいいなと、前々から思ってた。田中さんって、どこにでもいそうだし(失礼)。
あと、アイアンマンにJ.A.R.V.I.SってAIがいて由来が Stands for Just A Rather Very Intelligent Systemの頭文字。
たなかも ただの なんでもない 会話ロボ の頭文字だし、アイアンマンリスペクト。
この時点でAPIキーを入手できるので、これを使用して、中身を作っていく。
Slack上での設定が完了したので、次はサーバーの設定をしていく。
今回はサーバーとして、家に転がっていたRaspberry Pi 3 Model Bを用いる。
必要なモノをインストール
Hubotを動かすにはいくつかサーバー(以下ラズパイ)に導入(インストール)する必要がある。
Node.jsとnpm
Node.jsとnpmが必要なので、導入する。導入の手順は割愛。
$ node -v v7.8.0 $ npm -v 6.0.0
npm経由で導入するものたち
$ npm install -g hubot yo generator-hubot coffee-script
同時に4つのものを導入している。
これでOK!導入完了!
作っていく
hubot用のディレクトリを用意、その中に移動
$ mkdir hubot $ cd hubot/
Botを生成
yoコマンドで、ボットの生成開始
$ yo hubot ? ========================================================================== We're constantly looking for ways to make yo better! May we anonymously report usage statistics to improve the tool over time? More info: https://github.com/yeoman/insight & http://yeoman.io ========================================================================== Yes _____________________________ / \ //\ | Extracting input for | ////\ _____ | self-replication process | //////\ /_____\ \ / ======= |[^_/\_]| /---------------------------- | | _|___@@__|__ +===+/ /// \_\ | |_\ /// HUBOT/\\ |___/\// / \\ \ / +---+ \____/ | | | //| +===+ \// |xx| ? Owner <適当なメールアドレス> ? Bot name <ボットの名前> ? Description A simple helpful robot for your Company <なにも入力せずエンター> ? Bot adapter slack create bin/hubot create bin/hubot.cmd create Procfile create README.md create external-scripts.json create hubot-scripts.json create .gitignore create package.json create scripts/example.coffee create .editorconfig _____________________________ _____ / \ \ \ | Self-replication process | | | _____ | complete... | |__\\| /_____\ \ Good luck with that. / |//+ |[^_/\_]| /---------------------------- | | _|___@@__|__ +===+/ /// \_\ | |_\ /// HUBOT/\\ |___/\// / \\ \ / +---+ \____/ | | | //| +===+ \// |xx| + hubot@3.1.1 + hubot-pugme@0.1.1 + hubot-google-images@0.2.7 + hubot-diagnostics@1.0.0 + hubot-redis-brain@1.0.0 + hubot-scripts@2.17.2 + hubot-heroku-keepalive@1.0.3 + hubot-maps@0.0.3 + hubot-rules@1.0.0 + hubot-google-translate@0.2.1 + hubot-slack@4.5.5 + hubot-help@1.0.1 + hubot-shipit@0.2.1 added 157 packages from 126 contributors in 33.18s [+] no known vulnerabilities found [268 packages audited]
AA出してくるとか、好き。
起動確認
$ ./bin/hubot tanaka58> tanaka58 ping tanaka58> PONG tanaka58> ping tanaka58> hei tanaka58> yahho tanaka58> tanaka58 hey tanaka58> tanaka58 ping tanaka58> PONG
PONG以外は全部私の入力。どうやらまだ、名前+pingの組み合わせしか反応してくれないらしい。が、起動の確認はできた。
まだまだこれから
実はこいつ、CoffeeScriptという言語で、スクリプトを書けば、様々な機能を追加できる。それはまた別記事に。