Google Apps Script에서 정기적으로 Slack에 알람 보내기

Google Apps Script에서 정기적으로 Slack에 알람 보내기

Google Apps Script에서 정기적으로 Slack에 알람을 보내는 방법을 정리해 봤습니다.
Clock Icon2024.12.02

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 Google Apps Script에서 정기적으로 Slack에 알람을 보내는 방법을 정리해 봤습니다.

이전 블로그에서는 Google Apps Script에서 읽은 혹은 읽지 않은 구글 이메일을 확인하고 Slack에 알람을 보내는 방법에 대해 알아보았습니다.

https://dev.classmethod.jp/articles/jw-try-sending-unidentified-email-notifications-to-slack-with-google-apps-script/

하지만, 사용자가 직접 실행 버튼을 눌러 수동으로 알람을 보내야하는 불편한 점이 있기 때문에 이번에는 자동으로 이메일을 확인하고 알람을 보내는 방법을 살펴보고자 합니다.

Google Apps Script 트리거

먼저 Slack으로 알람을 보내는 코드는 아래 블로그에서 사용한 코드 그대로 사용합니다.

https://dev.classmethod.jp/articles/jw-try-sending-unidentified-email-notifications-to-slack-with-google-apps-script/

정기적으로 해당 코드를 실행하기 위해서 트리거를 사용합니다. 트리거에 대한 내용은 아래 공식 문서에서 확인할 수 있습니다.

https://developers.google.com/apps-script/guides/triggers?hl=ko

Screenshot 2024-12-02 at 4.48.09 PM

트리거는 Google Apps Script에서 왼쪽 카테고리에서 확인할 수 있습니다.

트리거 설정에서는 실행할 함수와 트리거를 언제 실행할지 시간을 선택할 수 있습니다.

시간은 분 기반으로하여 10분 간격으로 통지되게 설정했습니다. 실행할 함수는 다음 코드를 복사합니다.

트리거 코드

function Trigger(){  
  // 예약 시간 설정
  var setTime = new Date();  
  setTime.setDate(setTime.getDate());
  setTime.setHours(setTime.getHours());    
  setTime.setMinutes(setTime.getMinutes() + 10); // 10분 마다
  Logger.log(setTime);
 // 기존에 등록된 트리거 모두 삭제
  var triggers = ScriptApp.getProjectTriggers();
  for (var i = 0; i < triggers.length; i++) {
    ScriptApp.deleteTrigger(triggers[i]);
  }
  // 트리거 등록. 실제 동작할 함수를 의미 : send_notification_to_slack_when_mail_arrived()
  ScriptApp.newTrigger('send_notification_to_slack_when_mail_arrived').timeBased().at(setTime).create();  
}

해당 트리거 코드를 추가합니다. 코드는 아래 블로그를 참고했습니다.

https://qiita.com/leechungkyu/items/d1130ae0b2fdff398f7c

이렇게 코드를 입력하고 트리거를 설정해 놓은 상태에서 10분 정도 기다려보면

testjaewoo-1

Slack으로 알람이 오는 것을 확인할 수 있습니다. 이번에는 10분 간격으로 알람을 보내도록 설정했지만, 하루에 한 번 혹은 주에 한 번씩 알람을 보내는 것으로 정기적으로 받아볼 수 있습니다.

본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 jaewookkim533@yahoo.com로 보내주시면 감사하겠습니다.

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.