読者です 読者をやめる 読者になる 読者になる

女子WEBエンジニアのTechメモ

都内の某企業でマーケッターやってます。営業→WEBエンジニア・オフショア開発チーム駐在→マーケッター(SEO)ちょっと便利だなと思ったことをメモしています。

【Mac】ChatworkをHubotと連携させる!

API

私の会社では、部署内コミュニケーションはすべて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発行」から確認できます!

f:id:ajarakko:20160712003433p:plain f:id:ajarakko:20160712003441p:plain

これを下記のコマンドの"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

実際にルームで話しかけてみると・・・

f:id:ajarakko:20160712003503p:plain

できました!