5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

いつも飲み過ぎちゃうから、LINE Notifyが終了しても注意してくれるようにしたお話。

Last updated at Posted at 2025-03-08

この記事で書くこと

いつも飲み過ぎちゃう自分に対して、シラフの自分がしっかり注意してくれるようにしてみたのですが、LINE Notify が終了することになったので、別の方法でもっと注意するようにしたお話です。

変化の多い世の中です。
使用しているサービスが終了しても、外的要因に右往左往せずカイゼンを繰り返していくのです。
生涯成長期を目指して、カイゼンしていくための試行錯誤を書きます。
 

この記事で書かないこと

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

前回の振り返り

前回の反省

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

  • よかったこと
    • メールでも警告が届く
    • LINEでも警告が届く
  • 改善が必要なこと
    • LINE Notify が終了してしまうので、代替手段を用意しなければいけない

改善の方向性

いつも飲み過ぎちゃうから、LINE Notifyが終了しても注意してくれるようにしたお話。

準備

用意するもの

使うもの

仕組み

LINE Notify を使ってLINE通知していた仕組みを、Messaging APIで代替してみる。

実際に作ってみる。

公式LINEを作る

こちらを参考にさせていただきました。
【公式】LINE公式アカウントの作り方|作成方法や料金プランを紹介

Messaging API を準備する

こちらを参考にさせていただきました。
Messaging APIを始めよう

GASをカスタマイズしよう!

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 accessToken = "ACCESS_TOKEN";
  const userId = "USER_ID";
  const url = "https://api.line.me/v2/bot/message/push";

  // 予定がある場合のみ実行
  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にも送信
    const payload = {
      to: userId,
      messages: [
        {
          type: "text",
          text: body
        }
      ]
    };

    const options = {
      method: "post",
      headers: {
        "Content-Type": "application/json",
        "Authorization": "Bearer " + accessToken
      },
      payload: JSON.stringify(payload)
    };

    try {
      const response = UrlFetchApp.fetch(url, options);
      Logger.log("Response: " + response.getContentText());
    } catch (e) {
      Logger.log("Error: " + e);
    }
  }

}

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

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

image.png

メールが飛んできた
image.png

LINEも飛んできた
image.png

できた

まとめ

サービス終了前になんとかなりました。

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?