person
(匿名) #42f85734
2020-04-26に投稿

中学生です。今コロナウイルスの影響で学校が休校になっています。そのため僕の学校ではオンライン授業をしているのですが、その時に時間割がいつもと違うので、グーグルカレンダーに予定を登録すれば、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); }
ツイッターでシェア
みんなに共有、忘れないようにメモ
コメント