GoogleSpreadsheet이 업데이트되면 Slack에 알림을 보내는 기본 형태

하고 싶은 일



GoogleSpreadsheet에서 만든 관리 테이블을 여러 사람과 공유하고,
상태 열이 변경되면 즉시 알림을 원하십니까?

이번에 GoogleSpreadsheet의 특정 열이 업데이트되면 Slack에 알림이 날 수 있도록,
GoogleAppsScript를 사용하여 실현해 봅니다.



절차


  • Slack Incoming Webhook 설정하기
  • 대상 Spreadsheet에서 스크립트 작성
  • 트리거 설정하기

  • 1. Slack의 Incoming Webhook 설정하기



    Slack 화면 왼쪽 상단의 조직 이름을 클릭하고 설정 및 관리 → 앱 관리로 이동합니다.
    사용자 지정 통합에서 Incoming Webhook을 클릭합니다.


    (주의 글에도 있듯이, 커스텀 인테그레이션은 2020/08 시점에서 비추천이 되고 있으므로, 그 중 재기록합니다)

    Slack에 추가를 클릭합니다.


    어떤 채널에 게시할지 선택하고 추가 버튼을 누릅니다.


    다음 화면에 나오는 Webhook URL을 메모하고 화면 하단의 '설정 저장' 버튼을 누릅니다.
    일단 Slack에서 멀리.

    2. 대상 Spreadsheet에서 스크립트 작성



    슬랙에 알림을 보내고 싶은 스프레드 시트를 열고
    도구 → 스크립트 편집기를 엽니다.


    열면 다음 코드를 복사합니다. (나중에 조금 다시 씁니다)

    코드



    코드.gs
    /**
     新しく値が追加されたときに、Slackにお知らせする関数
    */
    function onEdit(e) {
      // 対象のシート名
      const TARGET_SHEET = "list";
      // 対象の列番号 (A=1, B=2,...)
      const TARGET_COLUMN = 5;
      // 対象のSlack webhook URL
      const SLACK_URL = "https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX";
    
      // 更新したシートとセル
      let sheet = SpreadsheetApp.getActiveSheet();
      let cell = sheet.getActiveCell(); 
    
      // 対象のシート・列でなければ何もしない
      if (!e || (sheet.getName() != TARGET_SHEET) || (cell.getColumn() != TARGET_COLUMN )) {
        return;
      }
    
      // Slackに送るテキストメッセージ
      let message = e.user + " さんが " + cell.getA1Notation() + "を更新しました。\n" + e.oldValue + "\n\n" + e.value;
    
      const OPTIONS = {
        "method": "post",
        "contentType" : "application/json",
        "payload" : JSON.stringify({
          "text" : message
        })
      };
      UrlFetchApp.fetch(SLACK_URL, OPTIONS);
    }
    
    

    ↑의 코드를 이용 상황에 맞게 다시 씁니다.
    먼저 TARGET_SHEET, TARGET_COLUMN, SLACK_URL을 다시 작성하십시오.
    TARGET_COLUMN은 E 열 업데이트를 알리고 싶다면 5라고 씁니다.
    SLACK_URL은 1단계에서 기록한 URL을 작성합니다.

    끝나면 저장합니다. (Ctrl+s 또는 💾 버튼 클릭)

    3. 트리거 설정하기



    현재 이 프로그램은 저장한 것만으로 시작하는 계기가 없습니다.
    다음은 트리거 설정입니다.

    편집 → 현재 프로젝트 트리거를 선택합니다.


    트리거를 추가하고 을 클릭합니다.


    이벤트 유형을 "편집 시"로 변경합니다.
    그 외는 변경 불필요합니다.


    저장을 누르면 완료됩니다.
    Spreadsheet을 변경하여 Slack에 알림이 있는지 테스트해보십시오.



    결론



    순서를 대폭 헹구고, 동작시키기 위한 「기본」의 방법만 설명했습니다.
    오류 검사를 하거나 메시지를 변경해 보세요.
    커스터마이즈를 여러가지 시험해 주세요.

    좋은 웹페이지 즐겨찾기