いつまで働くの？定時を把握しようよ！

# 気づかなかった・・を防ぐ
没頭しすぎて、定時をとっくに超えていた・・を防ぐために通知ツール作ってみました。
※動いた時間がLINEに通知されてます。動かしたのが11時42分だったので画像の時間が11時42分になってます。
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">定時連絡ツール作ってみた。<a href="https://twitter.com/hashtag/protoout?src=hash&amp;ref_src=twsrc%5Etfw">#protoout</a> <a href="https://twitter.com/hashtag/integromat?src=hash&amp;ref_src=twsrc%5Etfw">#integromat</a> <a href="https://twitter.com/hashtag/gas?src=hash&amp;ref_src=twsrc%5Etfw">#gas</a> <a href="https://t.co/jBbmfKbarZ">pic.twitter.com/jBbmfKbarZ</a></p>&mdash; heihei (@heihei15408697) <a href="https://twitter.com/heihei15408697/status/1322731814775971840?ref_src=twsrc%5Etfw">November 1, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# 使ったツール
■GoogleAppsScript(GAS)

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

# GoogleAppsScript(GAS)側設定

### Googleスプレッドシート

Googleスプレッドシートに2020年11月から2021年11月の祝日を記載しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/726018/c6ff4c37-1089-d38b-19cc-835f747e1fd3.png)

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

```Javascript
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);
  }
}
```

### プロジェクトのトリガー設定
１．プロジェクトのトリガーボタン（赤枠）を押す
※黒い部分はWebhookのURLなので塗りつぶしてます。
![無題3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/726018/90d56bdd-1a55-8c0c-7353-f605672a5858.png)

２．トリガーを追加ボタン（赤枠）を押す
![無題1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/726018/8fcae4ca-f7e1-72d1-0b3f-e2fa2876a015.png)

３．画像の通りの設定をする（画像は毎週金曜日にしているが、毎週月曜日から毎週金曜日の5つを作成）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/726018/c9d451ad-02ab-6684-09f9-8a2b00dd7b63.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/726018/6b8ae0dc-5a06-e436-580a-3e1f2935f353.png)

# Integromat側設定
### 全体概要
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/726018/4dc484e8-de5e-947d-5c4f-8d8d487d01fe.png)

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/726018/b7e96a7c-5616-8bba-765f-ad2b03507edc.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/726018/7ad439a3-b944-029b-5490-7c3c72126c86.png)

### 時間設定
赤枠部分をONにしたうえで、時計マークをクリックします。
![無題2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/726018/c792641f-5fe9-02e0-8517-9ccfeb494038.png)

リクエストが来たら、すぐ実行するようにしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/726018/00c9c7e3-20d3-28c8-83af-9830bf664041.png)

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