GAS를 사용하여 소수일을 알려주는 Slack Bot을 만들어 보았습니다.

개요



Slack Bot과 Google Apps Script를 사용하여 소수일을 알리는 기능을 구현합니다.

상세



오늘 2020년 4월 29일은 소수일(20200429는 소수)인 것 같다. 그래서 이번에는
  • Google Apps Script에서 소수일 결정하기
  • 소수일이라면 Slack Bot에 알림을 보냅니다

  • 라는 기능을 만든다.

    Slack Bot 만들기



    이전에도 Slack Bot을 만들었습니다.이 Slack API 페이지에 변경 사항이 있기 때문에 설명이 변경되었습니다.

  • htps : // 아피. scck. 코 m/아 ps로 이동하여 Create New App을 클릭하십시오
  • 앱 이름과 작업 공간을 설정하고 Create App을 클릭하십시오
  • 왼쪽 메뉴에서 OAuth & Permissions 를 클릭

  • Bot Token Scopes에서 Add an OAuth Scope를 클릭하고 chat : write 추가
  • 왼쪽 메뉴에서 App Home을 클릭

  • Your App’s Presence in Slack에서 Edit를 클릭하고 Display Name (Bot Name)과 Default username을 추가합니다.
  • 다시 왼쪽 메뉴에서 OAuth & Permissions를 클릭하고 페이지 상단의 Install App to Workspace를 클릭하십시오.
  • 앱이 작업 공간에 대한 액세스 권한을 요청하기 때문에 허용합니다
  • 표시된 Bot User OAuth Access Token을 기록해 둡니다.

    GAS로 코딩


  • Google 드라이브에 "Google Apps Script"를 새로 만드십시오
  • 편집기 화면의 리소스> 라이브러리에서 여기의 라이브러리 추가
  • 다음 코드를 입력하여 저장

  • 코드.gs
    function myFunction() {
      // 今日の日付を取得
      var todayobj = new Date();
      var today = Utilities.formatDate(todayobj, 'Asia/Tokyo', 'yyyyMMdd');
      var year = Utilities.formatDate(todayobj, 'Asia/Tokyo', 'yyyy');
      var month = Utilities.formatDate(todayobj, 'Asia/Tokyo', 'MM');
      var day = Utilities.formatDate(todayobj, 'Asia/Tokyo', 'dd');
    
      // 素数かどうか判定する関数
      function is_prime(n) {
        var result = true;
        for(let i = 2; i <= Math.ceil(Math.sqrt(n)); i ++) {
          if(n % i == 0) {
            result = false;
            break;
          }
        }
        return result;
      }
    
      // Slack API でメッセージを送信する準備
      var slack_token = "xoxb-..."; // Bot User OAuth Access Token
      var slackApp = SlackApp.create(slack_token);
      var channelId = "ABCDEF12345"; // 作成したアプリのチャンネルID
      var message = "本日【" + year + "" + month + "" + day + "日】は素数日です!";
      var result = "Not Posted";
    
      // 素数日ならばメッセージ送信
      if(is_prime(today)) {
        result = slackApp.chatPostMessage(channelId, message, {});
      }
    
      Logger.log(result);
    }
    

    테스트


  • 스크립트 편집기 화면에서 실행 버튼을 클릭하십시오
  • Google 계정에 대한 액세스가 요청되었으므로 허용 1
  • 스크립트가 실행되고 Slack Bot에 알림이 도착하면 성공

  • 운영 시작


  • 스크립트 편집기 화면에서 편집> 현재 프로젝트 트리거를 클릭

  • 트리거 추가를 클릭하십시오
  • 이벤트 소스를 시간 기반으로 설정하고 트리거 유형을 날짜 기반 타이머로 설정하여 시간을 선택합니다.

    소수일이면 다음과 같이 통지됩니다.



    참고


  • Google Apps Script로 Slack Bot을 만들어 보았습니다. (공부편) - Qiita
  • 소수 판정 다양한 - 간단한 판정과 소수 분포 - Qiita
  • GoogleAppsScript로 현재 날짜와 시간 가져오기



  • "이 앱은 확인되지 않았습니다"라는 화면이 나오면 "자세히"를 클릭 한 후 "~ (안전하지 않은 페이지)로 이동"을 클릭하면 계속 진행됩니다.

    좋은 웹페이지 즐겨찾기