前提・実現したいこと
カレンダーに登録した予定の時刻の3分前にHangout Chatに自動で通知を送るbotを作る。
発生している問題・エラーメッセージ
中学生です。
今学校が休校中でオンライン授業をしています。ただ、時間割がいつもと違うため、不便に感じています。そこで、Google calendarにあらかじめ予定を登録しておくと、予定した時間の3分前にHangout Chatにて自動で通知を送るbotを作ろうとしています。いかにソースコードを添付しましたが、このコードではエラーメッセージが出ないのにもかかわらず、メッセージが送られませんでした。僕はプログラミングを始めて1か月もたっていないので、どうしていいのかわからず立ち往生しています。どなたか改善策を教えていただけませんか?
ただ、Google calendar ID と、webhookUrlは入力してある状態でした。
Java
1ソースコード 2function getEvents(){ 3 var kaichiCal =CalendarApp.getCalendarById(''); //取得するGoogleカレンダーのIDを指定する。 4 5 // 取得したWebhookのURLを記載する。Chatで確認できるはずなので、それを入力します。 6 if(!kaichiCal) { 7 Logger.log("Unable to access calendar with id=" + kaichiCal); 8 return; 9 } 10 var events = kaichiCal.getEventsForDay(new Date()); // カレンダーから予定を取得する 11 var hello = 'こんにちは。\n 直近の予定をお知らせします。\n ------------------------------- '; 12 13 14 // 各予定1つ1つに実行する処理 15 for(var i=0; i < events.length; i++){ 16 17 18 19 20 // 予定の件名、開始時間を取得 21 startTime = events[i].getStartTime(); 22 eventName = events[i].getTitle(); 23 24 //予定の開始時間から3分引いた時刻を取得 25 var threeMinutesBefore = (startTime.getTime() - 3*60*1000); 26 27 //現在時刻を取得 28 var now = new Date(); 29 now = now.getTime(); 30 if (threeMinutesBefore < now && now < startTime){ 31 32 // 時間をJSTに変換 (GASの標準はUTC) 33 var startTimeJST = Utilities.formatDate(startTime, "JST", "HH:mm") 34 //送信用のメッセ―ジ 35 var message = hello + startTimeJST + " " + eventName + " "; 36 //chatに送る 37 postchat(message); 38} 39} 40} 41 42 // chatに投稿する 43 44 function postchat(message,webhookUrl){ 45 var webhookUrl = '';//webhookUrlを入力 46 var botMessage = { 'text' : message} 47 var options = { 48 'method': 'POST', 49 'headers' : { 50 'Content-Type': 'application/json; charset=UTF-8' 51 }, 52 'payload':JSON.stringify(botMessage) 53 }; 54 var result = UrlFetchApp.fetch( webhookUrl, 55 {payload: JSON.stringify(options), 56 muteHttpExceptions:true, 57 }); 58 Logger.log(result); 59} 60 61 62 63 64 65
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/26 14:04
2020/04/26 15:19 編集