function set_trigger() {
var day = new Date();
if (day.getDay() > 5 || day.getDay() == 0 || holiday(day) == 1) {
return;
}
// 오전 10시 트리거 설정
const timeMorning = new Date();
timeMorning.setHours(10);
timeMorning.setMinutes(0);
deleteSpecificTriggers('sendToSlack');
ScriptApp.newTrigger('sendToSlack').timeBased().at(timeMorning).create();
// 오전 11시 30분 트리거 설정
const timeNoon = new Date();
timeNoon.setHours(11);
timeNoon.setMinutes(30);
deleteSpecificTriggers('sendToSlack');
ScriptApp.newTrigger('sendToSlack').timeBased().at(timeNoon).create();
}
function holiday(day) {
var calendarId = 'l9ijikc83v1ne5s61er6tava4iplm8id@import.calendar.google.com';
var calendar = CalendarApp.getCalendarById(calendarId);
Logger.log(calendar);
Logger.log(calendar.getName());
var events = calendar.getEventsForDay(day);
Logger.log(events.length);
if (events.length >= 1) {
return true;
} else {
return false;
}
}
function deleteSpecificTriggers(functionName) {
var triggers = ScriptApp.getProjectTriggers();
for (var i = 0; i < triggers.length; i++) {
if (triggers[i].getHandlerFunction() === functionName) {
ScriptApp.deleteTrigger(triggers[i]);
}
}
}
트리거를 지워주지 않으면 간헐적인 오류가 발생하니까 deleteSpecificTriggers 를 통해 지워버리자.
function sendToSlack() {
var date = new Date();
var url = ''
postToSlack(url, null, "경기");
}
function postToSlack(url, messageType) {
var slackWebhookUrl = '';
var text;
text = "지금 <" + url + "|" + messageType + ">이 시작됐어요!"
var payload = {
"channel": "#블라블라",
"username": "봇",
"link_names": 1,
"attachments": [
{
"fallback": text,
"text": text
}
]
};
var options = {
'method': 'post',
'contentType': 'application/json',
'payload': JSON.stringify(payload)
};
UrlFetchApp.fetch(slackWebhookUrl, options);
}
슬랙에 보내준다. 슬랙 푸시 알림에서는 슬랙 봇 username이 설정한대로 나오지 않는다는 단점이 있다.
대한민국 공휴일을 설정하기 위해서 아래의 캘린더를 가져오도록 했다. 그래서 공휴일과 주말에는 봇이 작동하지 않는다!
l9ijikc83v1ne5s61er6tava4iplm8id@import.calendar.google.com
'코드와 오류 기록' 카테고리의 다른 글
git push RPC failed disconnect while reading sideband packet (0) | 2024.08.20 |
---|---|
Framer에서 OS별로 버튼 출력여부 결정하기 (0) | 2023.08.29 |
Framer에서 구글 시트로 데이터 전송하기 (0) | 2023.08.29 |
pytorch를 이용한 운동 자세 확인 (0) | 2023.08.15 |
SD roop 설정 (0) | 2023.08.10 |