最近、チャットワークから業務効率化に関するメールが頻繁にくるようになりました。メールを使うのは効率的ではないとのこと。そこで今回は Google Apps Script(GAS)でメール送信と定期実行を設定するに対して、チャットワークにもメッセージを送れるように機能を追加します。

Google Apps Scriptの第一歩、初心者でもチャットワークにメッセージを送れるではGoogleドライブにGoogle Apps Scriptを接続する方法を紹介していますが、前回スプレッドシートの変化からメールを送る処理をしたので、今回もスプレッドシート ⇒ スクリプトエディタからGASを作成していきます。

チャットワークでメッセージを送る

それでははじめましょう。

ライブラリを追加

まずGoogle Apps Script(GAS)でチャットワークにメッセージを送れるようにするためにライブラリを追加します。左のメニューのライブラリからスクリプトIDを入力して検索します。検索する文字列は https://github.com/cw-shibuya/chatwork-client-gas によると「1nf253qsOnZ-RcdcFu1Y2v4pGwTuuDxN5EbuvKEZprBWg764tjwA5fLav」であることがわかります。

チャットワークAPIトークンの取得

次にチャットワークからAPIトークンを取得します。これをChatWorkApiTokenという変数名で保存します。そのあと以下のコードでメッセージを送ることができます。

メンションも表示可能

もうちょっと汎用性を持たせるために、引数にルームIDと相手の名前、メンション、メッセージを渡すようにすると複数の相手にメッセージを送ることができます。

在庫が不足してきたらチャットワークにメッセージを送る

ではGoogle Apps Script(GAS)でメール送信と定期実行を設定するにチャットワークにメッセージを送る機能を追加します。

在庫管理のデモ

ToBuy関数を少し変えます。在庫がなくなってきたらチャットワークで担当者にメッセージを送る処理を追加します。メールのときと同じように何回も同じメッセージが送られないようにJ列をチェックしますが、SendMailIfNeed関数が実行されてメールが送られると「済」になってしまうため、先にSendChatWorkMessageIfNeed関数はSendMailIfNeed関数よりも先に実行されなければなりません(というかSendMailIfNeed関数を見直したほうがいいのかな?)。

必要であればチャットワークでメッセージをおくります。チャットワークルームIDはK列に書かれていますが、空欄の場合はチャットワークアカウントはないということなのでその場合は送りません。

GetChatWorkRoomIdFromItemId関数はK列に書かれているチャットワークルームIDを取得します。

GetChatWorkMentionIdFromItemId関数はL列に書かれているチャットワークのメンションIDを取得します。