GASとChatWorkをAPI連携して毎週のタスクをbot通知する方法

はじめに

日々の業務でコミュニケーションツールを利用している方は多いでしょう。新型コロナの影響でリモートワークを行っているなら尚更なのではないでしょうか。コミュニケーションツールはSlackやChatWorkが有名ですが、この記事ではChatWorkを利用したbot通知を送る方法についてお伝えしていきます。これは弊社のチームで実際に利用している方法ですので、同じように利用できる方もいるのではないかと思い、シェアさせていただくこととなりました。では以下で「GASとChatWorkをAPI連携して毎週のタスクをbot通知する方法」について画像とともに説明させていただきます。

ChatWorkでAPIトークンを取得する

まず、ご利用のChatWorkを開けてください。今回は他のメンバーに迷惑をかけないようテストアカウントを取得しマイチャットを利用して実践していきますが、実際にはグループチャットで運用していますので、テストが出来たら、グループチャットでの運用を試みてください。テストのためにわざわざテスト用のアカウントを作成する必要はありません。ご利用中のアカウントのマイチャットでテストは可能です。ただし、会社から付与されたアカウントで、管理者権限がない場合は管理者に対応を依頼してください。

ChatWorkの画面右上の「アカウント名」をクリックしてください。

サービス連携をクリックすると別タブが開くので左サイドバーの「API Token」をクリックしChatWorkにログインする際のパスワードを入力し「表示」ボタンを押してください。

するとChatWorkのAPIトークンが発行されるので、これをコピーしましょう。

これでChatWorkのAPIトークンを取得できました。これを使ってGASと連携していきます。

GASとChatWorkを連携する

GASとChatWorkを連携して、GASのコードを作成していきます。

まずGASを開いていきましょう。スプレッドシートやドキュメントとコンテナバインドしていなくても大丈夫なので、マイドライブからGASを開いていきます。

私のチーム内ではスプレッドシートと連携させていますが、利用目的によってコンテナバインドかスタンドアロンか決めてください。

GASのスクリプトエディタが開いたら以下のコードを記述します。内容は適宜変更してください。


function chatWorkMessage() {
    var client = ChatWorkClient.factory({token: 'APIトークンを入力'});
    client.sendMessage({room_id: ChatWorkのルームIDを入力, body: '送信メッセージを入力'});
}

ルームIDとはChatWorkのチャットグループを選択した状態でURLに出てくる「#ridxxxxxxxxx」のxxxxxxxxxの部分です。

次にGASの「リソース」→「ライブラリ」をクリックしましょう。

「Add a library(ライブラリを追加)」に「M6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT」をコピペで追加してください。

バージョンが最新のものを選択し、左下の「保存」をクリックしましょう。

これでGASとChatWorkの連携が完了しました。あとは実際に通知を送るだけです。

毎週のタスクをトリガーを使ってbot通知する

GASに記述したメッセージ内容が実際にChatWorkに届くか確認してみます。GASの「▶」ボタンを押して実行していきましょう。このとき、はじめて実行する場合は許可の確認が必要となるため許可していきます。許可ができたらChatWorkへ移りましょう。指定したチャットグループにメッセージが届きます。

もう一度GASの「▶」ボタンを押して実行してみると…

もう一通メッセージが届きましたね。

ではこれを毎週決まった時間にメッセージが届くように設定していきましょう。決まった時間に通知するにはGAS側でトリガーの設定をします。トリガーとは時限装置のようなものと考えてくだされば良いでしょう。このトリガーを毎週金曜日の18時半に設定するとしましょう。

GASのタイマーマークをクリックします。

トリガー設定画面が表示されるので、右下の「トリガーを追加」をクリックしましょう。

いくつか選択できる項目がありますが、変更箇所は「時間ベースのトリガーのタイプを選択」と「曜日を選択」、「時間の間隔を選択(時間)」の3箇所です。「時間ベースのトリガーのタイプを選択」は週ベースのタイマーを選択します。「曜日を選択」はここでは金曜日を選択します。「時間の間隔を選択(時間)」は18時半が選択できないので午後6時〜7時を選択します。

最大1時間のタイムラグがありますが、今回のケースだと特に気にするほどでもないので問題ないでしょう。設定ができたら、「保存」をクリックします。

ここではテストのため「時間ベースのトリガーのタイプを選択」の欄で「特定の日時」を選択しかなり細かい日時ですが「2020-08-25 14:37」と設定しました。すると設定した日時になるとChatWorkにしっかりと通知が来ていることが確認できました。

おわりに

このようにGASとChatWorkを連携させれば好きな日時にタスクなどのbot通知を送ることができます。弊社のチームでは毎週金曜日に週報を提出しているのですが、それを忘れる人がいたり、提出したかどうか管理するのが面倒なので、毎週金曜日の18時〜19時にChatWorkのグループに以下のようなメッセージが届くように設定しています。

ChatWorkに来た通知から、週報を提出することで、これと紐付いたスプレッドシートに提出の完了・未完了が自動で入力され、管理者以外は閲覧できるようにしています。これだけでも結構な時間と労力を省くことができます。以上を参考にして実践してみてください。