いつも飲み過ぎちゃうから、もっと注意してくれるようにしたお話。

この記事は[Qiita Engineer Festa 2023](https://qiita.com/official-campaigns/engineer-festa/2023) 参加記事です。
Qiita運営さんの[この記事誰得？ 私しか得しないニッチな技術で記事投稿！](https://qiita.com/official-events/5d4f04cf2ba0cdbc8821)企画への参加記事になります。
　
### この記事で書くこと

いつも飲み過ぎちゃう自分に対して、シラフの自分がしっかり[注意してくれるようにしてみた](https://qiita.com/pilot_fish/items/8596bef6d49f495382bf)のですが、注意力が足りなかったので、もっと注意するようにしたお話です。
失敗を繰り返し、学び、成長していくのです。
生涯成長期を目指して、カイゼンしていくための試行錯誤を書きます。
　
### この記事で書かないこと

もっと注意された結果、どうなったのか？は書きません。
~~そんな注意、アルコールの前では無力だと何度言ったら・・・！~~
成功していたら、カイゼンはしていません。


# 前回の振り返り

## 前回の反省

前回の仕組み化はどうだったのか振り返ってみます。
何事も検証と改善ですよね。

* よかったこと
  * 朝の段階で今日は飲み会だ！気をつけよう！という気持ちになれた
* 改善が必要なこと
  * メールは読んだあとに削除orアーカイブしちゃうので夜には忘れちゃう

## 改善の方向性

* 削除やアーカイブをしないツールに注意してもらえば良さそう
　　* LINEに通知とかいいのでは？

~~メールを削除（やアーカイブ）しなければ良いのでは？という正論パンチはやめてください。~~
~~そんなこと言ったら、そもそも飲み過ぎなんて自分の意識で改善すべきことです。~~
~~そして、記事を書くネタがなくなります。正論パンチ反対！~~

# いつも飲み過ぎちゃうから、もっと注意してくれるようにしたお話。

## 準備

### 用意するもの

* Googleカレンダー
* [前回のGAS](https://qiita.com/pilot_fish/items/8596bef6d49f495382bf#gas%E3%82%92%E6%9B%B8%E3%81%84%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86)
* LINEアカウント

### 使うもの

* [LINE Notify](https://notify-bot.line.me/ja/)

### 仕組み

前回のGASのメール送信のタイミングで、LINEにも通知してみる。

## 実際に作ってみる。

### LINE側で通知先のグループを作る

メンバーは自分だけでいいです！
![通知先のグループ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/394384/d262c520-dd26-7201-5f1f-b52ff3917940.png)

### LINE Notifyにログインして、アクセストークンをゲット

まずは、自分のLINEアカウントにログイン。

![LINE Notifyにログイン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/394384/681068d9-bc3a-2fef-071d-b92d12def698.png)

次にマイページに行く

![マイページに行き.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/394384/23d921a6-32e2-4fb9-05c1-e2f155f444a1.png)

トークンを発行しましょう！

![トークンを発行する.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/394384/6ea831c6-cc22-1fd9-ab3c-797ecdb0aed8.png)

先程作ったグループを選択して「発行する」を押します！

![先程作ったグループを選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/394384/1d97a84a-7a0e-8490-f1d9-52aa98f44770.png)

トークンをゲットできます！
**閉じるを押しちゃうと、確認はできないので、コピーしてメモすることを忘れずに！**
（再発行はできます。）

![トークンゲット.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/394384/149825b3-0581-a339-4eba-cac65d90868c.png)

### グループにLINE notifyを招待しよう

いつものグループに友達を招待するように **LINE Notify** をグループに招待します。

![グループに招待.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/394384/366ad803-a7ce-5af8-cb1f-61e30a90fc71.png)



### GASをカスタマイズしよう！

```javascript
function sendAlertMail() {

  // 自分のカレンダー
  const myCalendar = 'jibun_no_mail@example.com';
  
  // カレンダーオブジェクト取得
  const calendarData = CalendarApp.getCalendarById(myCalendar);

  // 今日の日付を取得
  const today = new Date();

  // 今日の予定を配列で取得
  const schedules = calendarData.getEventsForDay(today);

  // メールを送信するかフラグ
  let sendMailFlg = false;

  // LINEのトークン
  const lineToken = 'LINE_NO_TOKEN';
  const lineNotifyApi = 'https://notify-api.line.me/api/notify';


  // 予定がある場合のみ実行
  if (schedules.length != 0) {

    // 予定の件数だけ実行
    for (schedule in schedules) {

      // 飲み会っぽい文字がある時はメールを送る
      if(schedules[schedule].getTitle().includes('飲') || schedules[schedule].getTitle().includes('🍺') || schedules[schedule].getTitle().includes('🍻') || schedules[schedule].getTitle().includes('会食')){
        sendMailFlg = true;
      }

    }
  }

  // 飲み会がある時はメールを送信する。
  if(sendMailFlg){

    // メール件名
    const subject = '【要注意】本日は飲み会があります。';

    // 送付先メールアドレス
    const address = 'jibun_no_mail@example.com'

    // メール本文テンプレート
    const body = `本日は飲み会があります。

あなたは、過去何回も飲みすぎて失敗しています。

お酒は程々に`;

    // メール送信
    GmailApp.sendEmail(address, subject, body);

    // LINEにも送信
    // メッセージの送信設定
    let options = {
      "method"  : "post",
      "payload" : {"message": body},
      "headers" : {"Authorization":"Bearer " + lineToken}
    };

    // 送信設定
    UrlFetchApp.fetch(lineNotifyApi, options);

  }

}
```


### とりあえず手動で動かしてみた

飲み会の予定がある日は・・・

![今日も飲み会がある時は・・・.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/394384/cb7fbaf8-be83-b5c2-d997-36dc73dd0b8a.png)


メールが飛んできた
![メールが来た.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/394384/ad2fabd5-6c45-ceb5-ee72-8ec68752f37a.png)


LINEも飛んできた
![LINEも飛んできた.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/394384/87e553fb-fa9c-9d4a-824f-c647daee82e1.png)

**できた**

# まとめ

２日連続で、勢いで書きました。
GASは、もっときれいに書けると思います。
LINEも来るし、飲み過ぎも減らせられると思います。
お酒とは正しく付き合いましょう。