GoogleSpreadsheet이 업데이트되면 Slack에 알림을 보내는 기본 형태
7581 단어 슬랙GoogleSpreadSheetgas
하고 싶은 일
GoogleSpreadsheet에서 만든 관리 테이블을 여러 사람과 공유하고,
상태 열이 변경되면 즉시 알림을 원하십니까?
이번에 GoogleSpreadsheet의 특정 열이 업데이트되면 Slack에 알림이 날 수 있도록,
GoogleAppsScript를 사용하여 실현해 봅니다.
절차
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에 알림이 있는지 테스트해보십시오.
결론
순서를 대폭 헹구고, 동작시키기 위한 「기본」의 방법만 설명했습니다.
오류 검사를 하거나 메시지를 변경해 보세요.
커스터마이즈를 여러가지 시험해 주세요.
Reference
이 문제에 관하여(GoogleSpreadsheet이 업데이트되면 Slack에 알림을 보내는 기본 형태), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tamonne/items/f51fea168d4a7bae28f7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)