【GAS】Google 양식으로 답변이 왔을 때 Slack에 통지를 보내도록 해 보았다

소개



GAS 초보자는 튜토리얼 기사를 만들었으므로 좋으면 읽어보십시오.
GAS로 「Hello, World!」를 출력할 때까지를 정리해 보았다.

목적


  • 스프레드시트가 갱신될 때마다 Slack에 통지가 오도록(듯이) 하고 있었지만, 신규 입력시에 항목 셀 마다 직접 쓰고 있었기 때문에, 통지가 시끄러워져 버렸다. 그래서, 신규 입력용의 폼을 작성하고, 응답을 스프레드 시트에 정리해, 폼측에서 통지 처리를 하고 싶었다.
  • Qiita에 뭔가 투고하고 싶었다.

  • 구현



    알림을 보낼 채널의 WebHook URL을 가져옵니다.
    절차는 아래 기사를 참조했습니다.
    Slack의 Webhook URL 획득 절차

    대상 Google 양식을 열고 기타 → 스크립트 편집기에서 GAS를 작성합니다.
    FormApp.getActiveForm();
    
    function myFunction(e) {
    var webhook = "Webhook URL";
    
      var body = "Googleフォームの「" + e.source.getTitle() + "」に回答が送信されました。\n\n";
      var itemResponses = e.response.getItemResponses();
      body += "```";
      itemResponses.forEach(function(itemResponse){
        body += '' + itemResponse.getItem().getTitle() + '\n'
        body += itemResponse.getResponse() + '\n'
      });
      body += "```";
    
      var message = body;
    
      var jsonData =
     {
        "username" : "insertAlert", // ボットの名前
        "text" : message       //実際に送る内容
     };
     var payload = JSON.stringify(jsonData);
     var options =
     {
       "method" : "post",
       "contentType" : "application/json",
       "payload" : payload
     };
    
     // リクエストを飛ばすメソッド
     UrlFetchApp.fetch(webhook, options);
    }
    

    그런 다음 스크립트 편집기 편집 → 현재 프로젝트의 트리거에서 다음 트리거를 만듭니다.


    이상입니다.

    결과



    양식에서 답변을 제출하면,

    아래 형식으로 Slack의 해당 채널에 알림이 왔습니다.


    끝에



    구현에 관해서는 특별히 막히는 일도 없고, 선구자도 많이 있어 용이하게 할 수 있었습니다.
    Qiita는 최초의 투고였지만, 인턴처에서 Redmine을 사용하고 있었던 일도 있어 마크다운 기법에 익숙했기 때문에 쓰기 쉬웠습니다.
    앞으로도 출력을 계속할 수 있도록 노력하겠습니다.

    좋은 웹페이지 즐겨찾기