Slack에서 쉽게 근태 관리! 【GAS】

소개



※2020년 04월 18일에 집필한 것입니다.
드디어 긴급사태선언이 전국으로 확대되었네요.
이것을 계기로 리모트 워크가 시작되어, 익숙하지 않은 환경에 고생하고 있는 분도 있을까 생각합니다.
그래서 이번에는 근태를 조금 편하게 관리할 수 있는 방법을 소개하고 싶습니다.

개요



시스템의 흐름은 다음과 같습니다.

1. Slack의 지정 채널에서 [출근] or [퇴근]으로 시작하는 메시지가 게시됨
2. Slack App의 [Outgoing Webhook]이 반응하여 입력 내용과 사용자 정보를 전달하여 GAS를 시작합니다.
3. 전달된 정보를 GAS가 스프레드시트에 기록

필요한 것


  • Google 계정
  • 슬랙 작업 공간 (근태 기록을위한 채널이있는 것이 바람직)

    이만큼, 물론 무료로 할 수 있습니다.

    어떻게 할까?



    1. Slack 작업 공간에 Slack API의 [Outgoing Webhook] 도입



    이 URL 에서 Slack에 추가를 클릭합니다.
    ※App의 검색에서도 상관없습니다


    Outgoing Webhook 통합 추가를 클릭합니다.



    Outgoing Webhook이 활성화되었으므로 다음과 같이 설정합니다.
  • 채널 : 출퇴근을 게시할 채널 선택
  • 방아쇠가 되는 단어 : 출퇴근을 검지하는 키워드를 넣습니다(복수 단어의 경우는 쉼표로 단락짓는다)
  • URL : 비워 둡니다. 나중에 GAS URL을 넣는 데 사용됩니다.
  • 토큰 : 나중에 사용하므로 메모장이나 뭔가를 삼가 해주십시오
  • 설명 라벨 : 무엇을 사용하는지 적어 둡니다



  • 이름, 아이콘 등을 설정한 후 [설정 저장]을 선택합니다.



    2.GAS와 스프레드시트 만들기



    먼저 근태를 기록하는 스프레드시트를 만듭니다.



    도구에서 스크립트 편집기를 선택



    편집기가 열리면 작성한 코드를 지우고 다음 코드를 입력하십시오.
    function doPost(e) {
      //シート1はシート名に応じて変更
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');
    
      //先ほど控えたOutgoing Webhookのトークン
      var token = 'jWRJuACFVRiaatBRsf5A48GU'
    
      //送られてきたトークンが正しければ勤怠を記録する
      //parameterは必要に応じて変更してください
      if (token == e.parameter.token){
        var datetime     = new Date();
        var date         = (datetime.getFullYear() + '/' + ('0' + (datetime.getMonth() + 1)).slice(-2) + '/' + ('0' + datetime.getDate()).slice(-2))
        var time         = (('0' + datetime.getHours()).slice(-2) + ':' + ('0' + datetime.getMinutes()).slice(-2));
        var user_name    = e.parameter.user_name;
        var trigger_word = e.parameter.trigger_word;
        var text         = e.parameter.text;
    
        //追加する配列を作成
        array = [date,time,user_name,trigger_word,text];
    
        //シートの最下行に配列を記述
        sheet.appendRow(array);
      }
    
      return
    }
    

    3. 작성한 스크립트(GAS) 공개



    게시에서 웹 애플리케이션으로 배포를 선택



    적절한 이름을 지정하고 확인을 선택



    Who has access to the app를 Anyone,even anonymous로 변경하고 Deploy를 선택합니다.

    slack api가 이용하므로 누구나 사용할 수 있도록 설정하고 구현합니다.


    아래 화면이 나오므로 [허가 확인]을 선택하고 Google 계정으로 로그인하세요.



    로그인하면 [세부 정보 표시]를 선택하고 다음 화면이 표시되므로 [프로젝트 이름(안전하지 않은 페이지)으로 이동]을 선택합니다.



    그러면 다음 화면이 나오므로 [허용]을 선택합니다.



    앱이 구현되었으므로 URL을 자제합니다.



    4. Outgoing Webhook에서 GAS를 시작하도록 설정



    Outgoing Webhook의 설정 화면으로 돌아가 방금 공란으로 만든 [URL]에 구현한 앱의 URL을 입력하고 저장합니다.



    5.완성입니다!



    Slack에 입력하여 시도해 봅시다.

    Outgoing Webhook에서 지정한 채널에서 "출근했습니다"라고 게시하십시오.
    스프레드시트에 데이터가 작성되었습니까? 축하합니다!


    이번에는 소개 할 수 없었지만,
    다른 시트로 이 데이터를 집계해 근무표를 만들거나,
    bot에 회신시키거나 할 수도 있어요!

    결론



    간단하기 때문에 꼭 사용해보십시오.

    좋은 웹페이지 즐겨찾기