스케줄을 짜서 슬랙으로 연락하세요.
12960 단어 Google Apps Script구글 양식Slacktech
개시하다
Qita의Google Apps Script Advent Calendar 2020|3일차 기사로 썼습니다.
이것은 지난번에 제작한 공휴일에 대응하는 응용 예다.
다음 날 교대 담당자에게 영업일이 맞는지 아니면 담당자가 설정하지 않았는지 통지한다.
절차.
Incoming Webhooks의 슬랙 사용
현재 자신의 작업 공간에 추가할 수 있습니다.
Webhook URL을 가져오면 GAS로 설정합니다.
GAS로 슬랙 알리기
//日付計算用の定数
const MILLIS_PER_DAY = 1000 * 60 * 60 * 24;
//編集するシート
const SHEET_ID ="<シートのID>";
const SHEET_NAME = "<シートの名前>";
const SLACK_INCOMMING_WEBHOOK ="<Webhook URLを記載する>";
const RANGE_A1_HOLIDAY = "B2:E400";//日付,曜日,祝日,担当者
function sendSlack(message) {
var payload = JSON.stringify({
text: message
})
//POSTデータ
var option = {
"Content-Type":"application/json; charset=utf-8",
"method" : "POST",
"payload" : payload
};
UrlFetchApp.fetch(SLACK_INCOMMING_WEBHOOK, option);
}
function getBusinessDayValues() {
var sheet = SpreadsheetApp.openById(SHEET_ID);
var editSheet = sheet.getSheetByName(SHEET_NAME);
var rangeValues = editSheet.getRange(RANGE_A1_HOLIDAY).getValues();
var dateArray = {};
for (var v of rangeValues){
//日付のカラ行、曜日の土日、祝日に記載がある場合は担当者を取得しない
if ((v[0] == "") || (v[1] == "土" || v[1] == "日") || (v[2] != "")){
continue;
}
dateArray[v[0]] = v[3];
}
return dateArray;
}
function slackToShiftMember (){
var now = new Date();
//今日の0時
var startOfToday = new Date(now.getFullYear(), now.getMonth(), now.getDate() ,
0, 0, 0);
var sheetDates = getBusinessDayValues();
var nextDay = new Date(startOfToday.getTime() + MILLIS_PER_DAY);
var member = sheetDates[nextDay];
var message = "";
if (member && member !="") {
message = "明日の担当は" + member + "さんです";
} else if(member == ""){
message = "明日の担当は決まっていません";
} else {
message = "明日は営業日ではありません";
}
sendSlack(message);
}
최후
지난 주말과 공휴일의 판정만 쓰면 담당자가 결정할지 말지는 좀 번거롭다
Google Sheet에 먼저 기재하고 활용하면 문턱이 크게 떨어질 것 같습니다.
Reference
이 문제에 관하여(스케줄을 짜서 슬랙으로 연락하세요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/fuyu/articles/d8e44aaec09fda텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)