초보자도 쉽게 Google Apps Script로 Slack에게 알림 보내기

8942 단어 botspreadsheetgas

참고로 한 기사 일람



Google Spread Sheet을로드하는 방법 :
https://kujirahand.com/blog/index.php?GAS%E3%81%A7%E4%BB%BB%E6%84%8F%E3%81%AE%E3%82%B9%E3%83% 97%E3%83%AC%E3%83%83%E3%83%88%E3%82%B7%E3%83%BC%E3%83%88%E3%81%AE%E5%80%A4% E3%82%92%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%82%80

Slack에 알림을 날리는 방법 :
htps : // m / 치히로 / ms / c7b11 a bc78f5d806c3 a8

개요



매일 아침 실시하는 아침회에서 일마다 파시리를 결정하고 있는데, 「오늘의 파시리 누구인가?」라고 생각하고 있는 시간이 물론 없기 때문에, 미리 작성하고 있던 Spread Sheet를 활용해, Slack에 그 날의 파시리 누군가를 알려주는 bot를 원했기 때문에 구현해 보았습니다. 덧붙여서 이번이 처음으로 GAS(Google Apps Script)되는 것을 접했습니다.

구현한 스크립트



// スプレッドシートの読み込みに必要な変数群
var sheet = SpreadsheetApp.openByUrl('<あらかじめ作成してあったSpread SheetのURL>');
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();

// 曜日の取得に必要な変数群
var date = new Date();
var dayOfWeek = date.getDay();
var dayOfWeekStr = ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"][dayOfWeek];

// Slack通知に必要な変数群
var postUrl = '< Slack通知の際に必要なIncoming WebHooksのWebhook URL >';
var username = 'reminder';
var icon = ':ghost:';

function myFunction() {
  for (var i = 1; i <= numRows - 1; i++) {
    var weekdays = values[i][1];
    if (dayOfWeekStr === weekdays) {
      var message = '今日のファシリテーターは '+ values[i][2] + ' だす!';
      var jsonData = {
          "username": username,
          "icon_emoji": icon,
          "text" : message
      };
      var payload = JSON.stringify(jsonData);

      var options = {
          "method": 'post',
          "contentType" : "application/json",
          "payload" : payload
      }

      UrlFetchApp.fetch(postUrl, options);
    }
  }
}

처리 흐름



파시리 담당 스프레드 시트




번호
요일
담당


1
월요일
직원 A


2
화요일
직원 B


3
수요일
직원 C


4
목요일
직원 D


5
금요일
직원 E


출력 이미지



Slack에게 요일에 따라 "오늘의 퍼시리테이터는 직원 Hoge 댈다!"라고 통지된다

구현 설명



함수내의 처리에 대해서 주로 설명합니다.
- 스프레드 시트를 한 줄씩로드
- Spread Sheet에 기재되어 있는 요일과 오늘의 요일을 비교한다
- 요일에 따라 메시지에 요일에 적합한 직원 이름 추가
- JSON.stringify에서 JavaScript 값을 JSON 문자열로 변환
- Slack 알림 전에 Slack 알림에 필요한 옵션을 만듭니다.
- Slack(외부 서비스)를 사용하는 경우, Web API를 이용해, 「HTTP 리퀘스트를 보내는」 필요가 있기 때문에, 이하의 메소드를 사용할 필요가 있었으므로 구현

UrlFetchApp.fetch(URL,[options]);

완성형(출력)



안전하게 Slack에게 알림을 보낼 수있었습니다! (금요일에 실행한 경우)

좋은 웹페이지 즐겨찾기