はじめに
LINE Notifyを使用してスケジュールを通知するBOTを作成しました。
GoogleAppsScript(GAS)にて1日1回通知プログラムを実行します。そのプログラムでは、Googleカレンダーからその日のスケジュールを取得して、LINE Notifyに通知します。
LINE Notify
GoogleAppsScript
- GoogleAppsScriptを開いて、以下のスクリプトを実装します。
LINE_NOTIFY_TOKEN
にLINE Notifyで発行したトークンを指定する。
main.gs
/**
* スケジュール通知BOT
*/
const LINE_NOTIFY_TOKEN = '*****'; // LINE NOTIFY用のアクセストークン
const WEEKDAY = ["日", "月", "火", "水", "木", "金", "土"];
/**
* メイン処理
*/
function main() {
try {
let nowDt = new Date();
let dt = Utilities.formatDate(nowDt, 'Asia/Tokyo', `MM/dd(${WEEKDAY[nowDt.getDay()]})`);
let message = `\n今日の予定だよ!!\n\n--- ${dt} ----\n`;
let userMessage = '';
let calendarList = CalendarApp.getAllCalendars();
for (let i in calendarList) {
let calendar = calendarList[i];
let eventMessage = '';
let eventList = calendar.getEventsForDay(nowDt);
for (let j in eventList) {
let event = eventList[j];
eventMessage += `${getEventTime(event.getStartTime())} - ${getEventTime(event.getEndTime())} ${event.getTitle()}\n`;
}
if (0 < eventMessage.length) {
userMessage += `\n< ${calendar.getName()} >\n`;
userMessage += eventMessage;
}
}
if (0 < userMessage.length) {
message += userMessage;
} else {
message += '今日の予定はありません。';
}
sendLineNotify(message);
} catch (e) {
console.error(e.stack);
}
}
/**
* イベント時刻を取得する
* @param {String} str
*/
function getEventTime(str) {
return Utilities.formatDate(str, 'Asia/Tokyo', 'HH:mm');
}
/**
* LINEにメッセージを送信する
* @param {String} message メッセージ
*/
function sendLineNotify(message) {
let url = 'https://notify-api.line.me/api/notify';
let options = {
'method': 'post',
'headers': {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Authorization': `Bearer ${LINE_NOTIFY_TOKEN}`
},
'payload': `message=${message}`
};
let response = UrlFetchApp.fetch(url, options);
return JSON.parse(response.getContentText('UTF-8'));
}
CalendarApp.getAllCalendars()
でGoogleカレンダーの情報を取得することができます。calendar.getEventsForDay()
でカレンダーの予定を取得することができます。
参考リンク
- 【GAS修行④】明日のスケジュール報告で忘れ癖解消BOTをLINE Notifyで作成
- 家族のGoogleカレンダーの予定をLINEに通知する
- 【GAS】Googleカレンダーの予定をLINEで受け取る
- 10分でできる ~ Googleカレンダー[ 自社版 ]を作ってみよう ~ [ Google Apps Script ]
さいごに
ソースコードをGitHubに公開しています。
以上です。