TL;DR
GAS의 GUI 설정으로 2분 주기의 트리거 설정은 불가능합니다.
하지만 아래 예제를 활용하면 일반적인 크론(Cron) 설정을 할 수 있습니다.
※ 원래(GUI 설정에서) 분 단위 타이머는 1, 5, 10, 15, 30분 중 택일만 가능합니다.
How To
구글 스프레드 시트
Apps Script
프로젝트 설정 > 편집기에 'appsscript.json' 매니페스트 파일 표시 체크
편집기 > appsscript.json 의 timeZone
과 runtimeVersion
수정
{
"timeZone": "Asia/Seoul",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "DEPRECATED_ES5"
}
※ runtimeVersion
은 V8
버전에 버그가 있어 하위 버전을 사용합니다.
https://issuetracker.google.com/issues/150756612
편집기 > Code.gs 작성 > Trigger > 실행 > 승인 필요 > 권한 검토 > Allow
※ 아래 코드의 slack_webhook_url
은 사전에 필요합니다.
https://api.slack.com/messaging/webhooks
function Trigger(){
// 예약 시간 설정
var setTime = new Date();
setTime.setDate(setTime.getDate());
setTime.setHours(setTime.getHours());
setTime.setMinutes(setTime.getMinutes() + 2); // 2분 마다
Logger.log(setTime);
// 기존에 등록된 트리거 모두 삭제
var triggers = ScriptApp.getProjectTriggers();
for (var i = 0; i < triggers.length; i++) {
ScriptApp.deleteTrigger(triggers[i]);
}
// 트리거 등록. 실제 동작할 함수를 의미 : SendToSlack()
ScriptApp.newTrigger('SendToSlack').timeBased().at(setTime).create();
}
function SendToSlack() {
// Trigger() 호출
Trigger();
// 이하 send to slack 설정
var slack_webhook_url = 'https://hooks.slack.com/services/TFN512345/B01GBT67890/5qgJY2LjxvNAQu1234567890'; // Slack Incoming Webhook URL
var now = new Date();
// GMT+9 는 한국시간
var kst_now = Utilities.formatDate(now, "GMT+9", "yyyy-MM-dd (E) HH:mm:ss")
var payload = { 'text': kst_now };
var options = {
'method' : 'post',
'contentType': 'application/json',
'payload' : JSON.stringify(payload)
};
UrlFetchApp.fetch(slack_webhook_url, options);
}
무시해도 됩니다..
경고 > 서버와의 연결이 끊어졌습니다. 나중에 다시 시도해 보세요.
트리거 > 연필 모양 > 날짜/시간 입력 확인 > 현재시간 + 2분 후 시간 등록 확인
결과 화면
2분 마다 GAS가 동작함을 확인 할 수 있습니다.
아쉽지만 초(sec)는 설정이 불가능합니다.
위 트리거를 삭제하는 방법 : 트리거 > 3점 메뉴 > 트리거 삭제