【エンジニア流】Chatwork・Slackの自動定期送信で業務負担軽減してみた
プログラミング
こんにちは。コーダーのもっちゃんです。
今回は、GAS(GoogleAppScript)を使ってChatworkのbotを作成する方法を紹介していきたいと思います!
GAS(GoogleAppsScript)とは
Google Apps Script(GAS)とは、Googleが開発・提供しているプログラミング言語です。
JavaScriptをベースに作成されています。
Googleアカウントがあれば利用でき、無料です!
GASでできること
GASを使えばGoogle Apps(スプレットシートやフォームなど)の拡張、連携や、
他サービスのAPIを利用して連携させることも可能です
GASで作れるもの例
- メールの自動送信・返信
- スプレットシートのデータからグラフを自動作成
- スプレットシートに入力した予定をカレンダーに反映させる
- フォームの入力結果をslackやchatworkに自動送信する
- slackやchatworkのbotを作る
今回作るもの
今回は毎朝、全体グループにみんなを励ますメッセージを送信するbotを作成します。
励ましのお言葉は、 ”今日も最高の1日にしましょう!! おねがいします!” です。
土日祝など休みの日に励まされても困るので 土日祝日は処理が走らないように作成します。
必要なもの
botにするアカウントのAPIキー
全体グループのルームID (URLの末尾です)
手順は超簡単です!
プロジェクトを作成して実行したい処理を書く!
実行するタイミングを選択する! だけです!
まずプロジェクトを作りましょう

つぎは作成されたプロジェクトのエディタに処理を書いていきます!
処理については割愛しますが、今回作成したbotの処理は以下の通りです!
// メッセージを送信する関数です。 これが毎朝実行されることになります
function chatWorkMessage() {
// 今日が出勤日かどうか判定します trueならメッセージを送信します。
let setTime = new Date(Date.now() + ((new Date().getTimezoneOffset() + (9 * 60)) * 60 * 1000));
if(isWorkday(setTime) == true){
let messageBody = `
[toall]
今日も最高の1日にしましょう!! おねがいします!!`;
let client = ChatWorkClient.factory({token: '{APIキー}'});
client.sendMessage({room_id: {ルームID}, body: messageBody});
}
}
// 今日が休日かどうかを判定する関数です。 上のChatWorkMessageの中で呼び出されます
function isWorkday (targetDate) {
let rest_or_work = ["REST","mon","tue","wed","thu","fri","REST"];
console.log(rest_or_work [targetDate.getDay ()]);
if ( rest_or_work [targetDate.getDay ()] == "REST" ) {
return false;
};
let calJpHolidayUrl = "ja.japanese#holiday@group.v.calendar.google.com";
let calJpHoliday = CalendarApp.getCalendarById (calJpHolidayUrl);
console.log(calJpHoliday.getEventsForDay (targetDate).length)
if (calJpHoliday.getEventsForDay (targetDate).length !== 0) {
return false;
} ;
return true;
}
最後に実行トリガーを設定します。
時計のようなマークを押せばこんな画面になるので好きなタイミングの設定を行いましょう
今回は毎日 午前11時〜午後12時の間に実行されるよう設定しました。

以上で終了です!
あとは毎日、仕事の日は励ましもらうだけですね!
このようにGASを使えば無駄なものも作れますし、とても役に立つものも作れます!
学習コストも低いですし、情報も多いので興味のある方は使ってみるといいかもしれません。
ではまた!

