この記事で書くこと
いつも飲み過ぎちゃう自分に対して、シラフの自分がしっかり注意してくれるようにしてみたのですが、LINE Notify が終了することになったので、別の方法でもっと注意するようにしたお話です。
変化の多い世の中です。
使用しているサービスが終了しても、外的要因に右往左往せずカイゼンを繰り返していくのです。
生涯成長期を目指して、カイゼンしていくための試行錯誤を書きます。
この記事で書かないこと
LINEで注意された結果、どうなったのか?は書きません。
そんな注意、アルコールの前では無力だと何度言ったら・・・!
成功していたら、カイゼンはしていません。
前回の振り返り
前回の反省
前回の仕組み化はどうだったのか振り返ってみます。
何事も検証と改善ですよね。
- よかったこと
- メールでも警告が届く
- LINEでも警告が届く
- 改善が必要なこと
- LINE Notify が終了してしまうので、代替手段を用意しなければいけない
改善の方向性
- メール+LINE通知は効果的だったので、LINE通知を継続できるようにしたい
- LINE Notify提供終了のお知らせで書かれているMessaging APIで代替する
いつも飲み過ぎちゃうから、LINE Notifyが終了しても注意してくれるようにしたお話。
準備
用意するもの
- Googleカレンダー
- 前回のGAS
- LINEアカウント
使うもの
仕組み
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);
}
}
}
とりあえず手動で動かしてみた
飲み会の予定がある日は・・・
できた
まとめ
サービス終了前になんとかなりました。