GASでラインのリマインダーを設定する方法(超シンプルwebhook不要)
準備
ラインのBOTのアカウントを用意しておく
google formでスプレッドシートに名前/日にちを登録する仕組みを作成
まあこの二つは頑張ってください
ググればできます!たぶん
方針
スプレッドシートの登録されているデータをフィルター関数で絞り込む
GASで読み込んでメッセージを作成
送信する相手(ユーザー/グループ)のIDを取得
メッセージを送信するスクリプトを追加
トリガーで定期的に実行する
filter関数を使った絞り込み
当日のデータだけ表示する列を作る
=FILTER(データが登録されている範囲, 日付が入っている列 = TODAY())
これで条件に当てはまるデータがあれば絞り込みできます!
条件に当てはまるデータがなければ#N/Aと表示されます
GASで読み込んでメッセージを作成
let activeSpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
let sheet = activeSpreadSheet.getSheetByName('タブ名に置き換えてください');
var lastRow = sheet.getRange(1, 1).getNextDataCell(SpreadsheetApp.Direction.DOWN).getRowIndex();
let nameList = ""
var value = sheet.getRange(1,1).getValue();
if (value ==='#N/A'){
;
}else {
for (let i=1; i<=lastRow; i++) {
if (sheet.getRange(i,1).getValue()===""){
break
}else{
nameList = nameList + "\n" + sheet.getRange(i,1).getValue();
}
}
let message = nameList;
console.log(message)
ここまでで関数の実行ボタンを押せばメッセージが表示されます
バグってたらchatGPTに聞いてください
送信する相手(ユーザー/グループ)のIDを取得
https://cyuraharuto.com/gas-line-gid-get/
これを参考にやってみましょう
注意点
デプロイは全てに設定(じゃないとバグる)
BOTに実際にメッセージを送る必要がある
メッセージを送信するスクリプトを追加
const url = 'https://api.line.me/v2/bot/message/push';
const token = 'アクセストークン調べて入れる'; //チャネルアクセストークン
const payload = {
to: 'さっき取得したIDはここにいれる', //ユーザーID
messages: [
{ type: 'text', text: message }
]
};
const params = {
method: 'post',
contentType: 'application/json',
headers: {
Authorization: 'Bearer ' + token
},
payload: JSON.stringify(payload)
};
UrlFetchApp.fetch(url, params);
}
これは正直あんまり理解しなくてもいける!
アクセストークンとIDだけ入れ替えればOK
トリガーで定期的に実行する
これもそんなに特別なことはなく…
左側の時計のマーククリックしてあとは設定ぽちぽちすればできます
おしまい
超シンプルだしたぶんみんなできるはず
ど素人なのでコード汚くても多めに見てください
ちゃんと動くから
この記事が気に入ったらサポートをしてみませんか?