💁♀️
【LINE Notify × GAS】出社日だけ母親に「今日の夜ごはん何?」って聞いてくれるbotを作った
はじめに
この記事は、LINE NotifyとGAS(Google Apps Script)を使って、母親に「今日の夜ごはん何?」と聞いてくれるbotを作ったときのことをまとめた記事です。
私について
- プログラミング初心者
- 1人暮らしを3年ほどしたあと、実家暮らしに戻る
- 今年の2月に転職。週3出社 + 週2テレワークの職場に
- 通勤に1時間半くらいかかるので、出社したときは退勤時に今日の夜ごはんは何か知りたい!
👉 プログラミングの勉強も兼ねて、自動で送ってくれるようにしてみよう!
LINE Notify とは
- LINEとWebサービスを連携することで、LINEユーザーが簡単に通知を受信できるようになるサービス
- 利用料は無料
- 1時間にAPIをcallできる回数は1000回まで
GAS(Google Apps Script)とは
- Googleが提供するアプリケーション開発プラットフォーム
- HTML、CSS、JavaScriptなど、身近なWeb言語を使って処理を記述できる
- GASを使うとGmailやGoogleカレンダーなどの各種Googleサービスを自動化することができる
botを作る手順
1. LINE Notifyを友達追加する(初回のみ)
- 友達検索(ID)で、「@linenotify」と検索して友達に追加してください
2. 通知を送りたいLINEグループの作成(既存グループ以外に送る場合)
- 今回は、母親・私・LINE Notifyのグループを作ります
- 既存グループに送る場合は、既存グループにLINE Notifyを追加でOK
3. LINE Notifyにログイン
- https://notify-bot.line.me/ja/ にアクセスする
- 右上からログインする
4. アクセストークンの発行
GASとLINE Notifyを連携するためのトークンを発行しましょう。
手順は以下👇
- [マイページ] → [アクセストークンを発行する]
・トークン名:LINEで通知される際、メッセージの先頭に[ ]付きで表示される - 通知を送信するトークルームを選択する
-
トークンが発行されるので、コピーしておく
5. GAS側でコードを記述
いよいよコードを記述していきます!
- Googleドライブにログインし、新規のGASを作成
-
以下のコードをGASに記述する
・1行目のtoken
には、先ほどコピーしたトークンを貼り付けてください
コード.gs
const token = '先ほどコピーしたトークンを貼り付け';
const lineNotifyApi = 'https://notify-api.line.me/api/notify';
function doPost() {
// 今日の日付オブジェクトを生成
const date = new Date();
//曜日の番号を取得 日曜日は「0」,土曜日なら「6」を返す
const day = date.getDay();
// メッセージを定義
const message = 'ごはんなに?';
// メッセージの送信設定
const options = {
"method" : "post",
"payload" : {"message": message},
"headers" : {"Authorization":"Bearer " + token}
};
// 出社日(水・木・金)だけメッセージを送る
switch(day) {
case 3:
case 4:
case 5:
UrlFetchApp.fetch(lineNotifyApi, options);
break;
// 出社日以外は処理を終了
default:
break;
}
}
6. 手動で実行してみる
ここまでできたら一度手動で実行してみます。
手順は以下👇
- switch文にテスト時の曜日を追加する(この日は月曜日だったので
case 1
を追加)
コード.gs
switch(day) {
+ case 1: // テスト用に追加、あとで消す
case 3:
case 4:
case 5:
UrlFetchApp.fetch(lineNotifyApi, options);
break;
// 出社日以外は処理を終了
default:
break;
}
- 画像の部分から関数を実行する
- 以下のような警告が出るので、承認する
LINEに通知が来たら成功です!🎉
7. GASの実行タイミングを設定
自動で実行するための設定をします。
- GASに戻ってテスト用に追加した
case 1
を消す - 左側の[トリガー] → [トリガーを追加]でトリガーを設定する
今回は、[時間ベースのトリガーのタイプを選択: 日付ベースのタイマー]、[時刻を選択: 午後5時〜6時s]に設定します。
これで出社日(水・木・金)だけ自動でメッセージが送信されるようになりました!🥳
おわりに
初めは「LINEbot = LINE Messaging APIを使うもの」と思い込んであれこれ詰まりましたが、「今回やりたいことはLINE Notifyで実現できる」と分かってからはスムーズでした!
LINE Notify × GASは以下のような場面で活用できると思います。
・毎月15日、職場のグループLINEにシフト提出締め切りのアナウンスを流す
・毎日3回、父親に薬を飲んだか聞く
・毎日1回、友人と自分に筋トレしたか聞く
など…
他にも何か、思いついたら活用してみたいです!!💪🏻
その他参考
Discussion