中学生です。今コロナウイルスの影響で学校が休校になっています。そのため僕の学校ではオンライン授業をしているのですが、その時に時間割がいつもと違うので、グーグルカレンダーに予定を登録すれば、Hangouts Chatに自動投稿される機能を作ろうと思いました。
以下のソースでは予定の時刻の3分前になったら自動で送信するようにしています。ただ、これを試してもChatに送信されることはありませんでした。本番のものはカレンダーidやwebhookUrlは入力してあります。
僕はまだ初心者で、この休校期間中に初めて触れた初心者です。そのため、どうしていいのかわからず困っています。どなたか改善策を教えていただけないでしょうか。
function getEvents(){
var kaichiCal =CalendarApp.getCalendarById(''); //取得するGoogleカレンダーのIDを指定する。
var webhookUrl = '';
// 取得したWebhookのURLを記載する。Chatで確認できるはずなので、それを入力します。
if(!kaichiCal) {
Logger.log("Unable to access calendar with id=" + kaichiCal);
return;
}
var events = kaichiCal.getEventsForDay(new Date()); // カレンダーから予定を取得する
var hello = 'こんにちは。\n 直近の予定をお知らせします。\n ------------------------------- ';
// 各予定1つ1つに実行する処理
for(var i=1; i < events.length; i++){
// 予定の件名、開始時間を取得
var startTime = events[i].getStartTime();
var eventName = events[i].getTitle();
//予定の開始時間から3分引いた時刻を取得
var threeMinutesBefore = (startTime.getTime() - 3*60*1000);
//現在時刻を取得
var now = new Date();
if (fiveMinutesBefore < now && now < startTime){
// 時間をJSTに変換 (GASの標準はUTC)
var startTimeJST = Utilities.formatDate(startTime, "JST", "HH:mm")
//送信用のメッセ―ジ
var message = hello + startTimeJST + " " + eventName + " ";
//chatに送る
postchat(message);
}
}
}
// chatに投稿する
function postchat(message,webhookUrl){
var botMessage = { 'text' : message}
var options = {
'method': 'POST',
'headers' : {
'Content-Type': 'application/json; charset=UTF-8'
},
'payload':JSON.stringify(botMessage)
};
var result = UrlFetchApp.fetch(webhookUrl, options);
Logger.log(result);
}