- Hubotとは?
- Hubotをインストールするための環境を整える
- Hubotをインストールする
- Chatworkと接続するためのAdapterをインストールする
- ChatworkAPIのアクセストークンを入力する
- 投稿するルームIDを入力する
- APIリクエスト数を設定する
- Hubotを起動する
私の会社では、部署内コミュニケーションはすべてChatworkで行っています。
今日は、そのChatworkのAPIであるChatworkAPIを使ってHubotにChatwork上で話しかけると返事をしてくれる・・・というものを作ろうと思います!
Hubotとは?
GitHubが公開している、Node.jsでbotを開発・実行するためのフレームワークです。
MITライセンスで公開されています。
他のbot開発フレームワークと異なり、様々なチャットツールに対応しています。
HubotとチャットツールをつないでいるAdapter(=モジュール)を切り替えることで、
ChatworkやSlackなど、様々なチャトツールに接続することができます★
ChatworkAPIの利用申請を行う(承認までに時間がかかります!)
まず最初に、Chatworkの画面からCharworkAPIの利用申請を行います。
申請から実際に利用できるまでに時間がかかるので、前もって行っておきましょう!
Charworkにログインした状態で、チャットワークAPIの申請ページに行きます。
申請が承認されるとメールで通知が来ます。
Hubotをインストールするための環境を整える
npmを使ってHubotをインストールしたいので、nodebrewをインストールします。
npmとは:Node Packaged Modulesの略で、Node.jsのライブラリやパッケージを管理することができるツールのこと。
ターミナルを起動して、ホームディレクトリに移動して、nodebrewをインストールします。
curl https://raw.githubusercontent.com/hokaccha/nodebrew/master/nodebrew | perl - setup
インストールできたか確認するため、下記のコマンドを実行します。
nodebrew help
正常にインストールされていれば、helpの結果が表示されます。
PATHを通すため、.bash_profileを編集します。下記を記述して保存する。
(安定版を使うため、nodebrew use stableも記述しています。)
*編集場所: ホームディレクトリ/.bash_profile
export PATH=$HOME/.nodebrew/current/bin:$PATH nodebrew use stable
ターミナルで下記のコマンドを実行し、.bash_profileを読み込みます
source .bash_profile
Hubotをインストールする
npmを使って、yoemonとHubotのジェネレーターをインストールしていきます。
ターミナルから下記のコマンドを実行します。
npm install -g yo generator-hubot
下記のような実行結果になります。
npm WARN deprecated CSSselect@0.4.1: the module is now available as 'css-select' npm WARN deprecated CSSwhat@0.4.7: the module is now available as 'css-what' npm WARN deprecated npmconf@2.1.2: this package has been reintegrated into npm and is now out of date with respect to npm /Users/~~~~/.nodebrew/node/v5.8.0/bin/yo -> /Users/~~~~/.nodebrew/node/v5.8.0/lib/node_modules/yo/lib/cli.js > yo@1.7.0 postinstall /Users/aya/.nodebrew/node/v5.8.0/lib/node_modules/yo > yodoctor Yeoman Doctor Running sanity checks on your system ✔ Global configuration file is valid ✔ NODE_PATH matches the npm root ✔ Node.js version ✔ No .bowerrc file in home directory ✔ No .yo-rc.json file in home directory ✔ npm version Everything looks all right! /Users/aya/.nodebrew/node/v5.8.0/lib ├─┬ generator-hubot@0.3.1 │ ├─┬ chalk@0.5.1
これでインストールは完了したので、Hubotを動かして初期設定をします。
下記のコマンドを実行します。
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|
これでHubotのAjaが設定できました!
かわいすぎてにやにや・・・( ̄ω ̄ )
Chatworkと接続するためのAdapterをインストールする
今回はakiomikさんがGitHubで公開されている、hubot-chatworkというAdapterを利用します!
下記のコマンドを実行します。
npm i hubot-chatwork --save
これでAdapterのインストールが完了です★
ChatworkのRoomでHubotとやりとりするための設定を入力していきます。
ChatworkAPIのアクセストークンを入力する
Tokenなどの情報は、Chatworkの右上メニュー「動作設定」で開くmodalの「API発行」から確認できます!
これを下記のコマンドの"access token"部分にセットして実行します。
export HUBOT_CHATWORK_TOKEN="access token"
投稿するルームIDを入力する
ルームIDは、チャットワークでそのルームを開いたときのURL、ridのパラメーター部分に表示されています。
これを下記のコマンドの赤文字部分にセットして実行します。
複数のルームをセットする場合は、カンマで区切ってセットします★
export HUBOT_CHATWORK_ROOMS="111,222"
APIリクエスト数を設定する
HUBOT_CHATWORK_API_RATEが大きいほど、Hubotのレスポンスは速くなります。
公式ドキュメントによるとリクエスト回数は5分あたり100回までなので、1時間1200回くらいまでは大丈夫なようです。
余裕をもたせた数字を、下記のコマンドの赤文字部分にセットして実行します。
export HUBOT_CHATWORK_API_RATE="900"
これでAdapterの設定も完了です!٩( ‘ω’ )و
Hubotを起動する
さっき設定したルームに、Hubot用のユーザーを追加しておいてください。
(参加していないルームではHubotは投稿することができません)
- aオプションでChatWorkアダプターを利用してHubotを実行します。
- nオプションでチャット側で呼び出す際のbot名を指定できます。
bin/hubot -a chatwork -n aja
実際にルームで話しかけてみると・・・
できました!