いつまで働くの?定時を把握しようよ!


気づかなかった・・を防ぐ

没頭しすぎて、定時をとっくに超えていた・・を防ぐために通知ツール作ってみました。
※動いた時間がLINEに通知されてます。動かしたのが11時42分だったので画像の時間が11時42分になってます。

使ったツール

■GoogleAppsScript(GAS)

■Integromat
https://www.integromat.com/
〇Webhook
 Custom webhook
〇LINE
 Send a Notification

GoogleAppsScript(GAS)側設定

Googleスプレッドシート

Googleスプレッドシートに2020年11月から2021年11月の祝日を記載しました。

GoogleAppsScript(GAS)

Googleスプレッドシートに記載している日以外であれば、後述のWebhookを呼び出すようにしています。

function timeNotification() {
  // 今日の日付時間を取得
  const todayDateTime = new Date();
  // 休日判定フラグ  
  let holidayFlg = 'false';

  // スプレッドシート上の休みを取得
  const sheet = SpreadsheetApp.getActiveSheet();
  for (let i = 1; i <= sheet.getLastRow(); i++) {
    // スプレッドシート上の日付取得
    let holidayDateTime = sheet.getRange(i, 1).getValue();

    // 日付を比較し、休日であれば、フラグをtrueに変更
    if (holidayDateTime.getFullYear() === todayDateTime.getFullYear()
        && holidayDateTime.getMonth() === todayDateTime.getMonth()
        && holidayDateTime.getDate()  === todayDateTime.getDate()) {
          holidayFlg = 'true';
    }
  }

  // 休日でなければ、Webhookを呼び出す
  if (holidayFlg === 'false') { 
    // Webhook URL
    const URL = 'WebhookのURL';
    const res = UrlFetchApp.fetch(URL);
  }
}

プロジェクトのトリガー設定

1.プロジェクトのトリガーボタン(赤枠)を押す
※黒い部分はWebhookのURLなので塗りつぶしてます。

2.トリガーを追加ボタン(赤枠)を押す

3.画像の通りの設定をする(画像は毎週金曜日にしているが、毎週月曜日から毎週金曜日の5つを作成)

Integromat側設定

全体概要

LINE側設定

LINE Notifyとの接続を作成します。
LINEに送信するメッセージについて、現在時刻を加工して送信するようにしています。
メッセージといらすとやの画像も送るようにしました。

時間設定

赤枠部分をONにしたうえで、時計マークをクリックします。

リクエストが来たら、すぐ実行するようにしています。

最後に

GAS、Webhookと今まで使ったことない技術を使ってみたが、簡単に連携できました。
GASもっと使っていきたいと思います。