LoginSignup
0
0

More than 3 years have passed since last update.

2분 주기로 Google Apps Script 실행하기

Last updated at Posted at 2021-02-15

main000.png

TL;DR

GAS의 GUI 설정으로 2분 주기의 트리거 설정은 불가능합니다. :no_good_tone1:
하지만 아래 예제를 활용하면 일반적인 크론(Cron) 설정을 할 수 있습니다.

※ 원래(GUI 설정에서) 분 단위 타이머는 1, 5, 10, 15, 30분 중 택일만 가능합니다.
image.png

How To

구글 스프레드 시트

도구 > 스크립트 편집기
image.png

Apps Script

제목 변경 : 2분마다 슬랙에 메시지 보내기
image.png

프로젝트 설정 > 편집기에 'appsscript.json' 매니페스트 파일 표시 체크
image.png
image.png

편집기 > appsscript.json 의 timeZoneruntimeVersion 수정
image.png
image.png

appsscript.json
{
  "timeZone": "Asia/Seoul",
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "DEPRECATED_ES5"
}

runtimeVersionV8 버전에 버그가 있어 하위 버전을 사용합니다.
https://issuetracker.google.com/issues/150756612

편집기 > Code.gs 작성 > Trigger > 실행 > 승인 필요 > 권한 검토 > Allow
※ 아래 코드의 slack_webhook_url은 사전에 필요합니다.
https://api.slack.com/messaging/webhooks

Code.gs
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);  
}

image.png
image.png
image.png
image.png

무시해도 됩니다..
경고 > 서버와의 연결이 끊어졌습니다. 나중에 다시 시도해 보세요.
image.png

트리거 > 연필 모양 > 날짜/시간 입력 확인 > 현재시간 + 2분 후 시간 등록 확인
image.png
image.png

결과 화면

2분 마다 GAS가 동작함을 확인 할 수 있습니다.
아쉽지만 초(sec)는 설정이 불가능합니다.
image.png
위 트리거를 삭제하는 방법 : 트리거 > 3점 메뉴 > 트리거 삭제
image.png

참고

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0