Gmail에 오는 Connpass 알림을 좋은 느낌으로 Slack에게 알림

소개



Connpass의 통지, 좋은 가감 메일 이외에도 대응해 주었으면 한다....
Slack이라고까지는 말하지 않기 때문에 적어도 LINE도 옵션으로 취할 수 있도록 해 주었으면 ...

그런 욕망이 있습니까?

네, 예를 들어 예제처럼 GAS로 만들었습니다.

이 스크립트에서는,
이런 느낌의 버튼이 포함된 메일


이런 식으로 Slack에게 알립니다.


반대로 말하면 예제 버튼이 포함되어 있지 않은 사람은 대상에서 제외되므로주의하십시오.
(그런 것은 싫다!라는 사람은 스크립트를 만져주세요)

Gmail 설정하기



그렇다고 해도 2 가지만
  • connpass 라벨 만들기
  • 필터 기능으로 connpass에서 온 메일은 받은 편지함을 건너 뛰고 connpass의 레이블을 붙여서 읽을 수 있습니다

  • 필터 구체적인 설정은 ↓와 같은 느낌





    이제 Gmail 측은 준비 완료

    Slack의 Incoming Webhooks 설정하기



    「Slack Incoming Webhook」로 구그하면 정보 나오므로 자세한 것은 할애.
    여기에서 통보하고 싶은 채널, BOT의 이름, 아이콘을 적당하게 설정한다.
    덧붙여서 아이콘은 공식이 API의 일부로서 공개하고 있으므로 사용하면 좋을지도.
    htps : // 곤파 s. 코 m/아보 t/아피/

    발행된 Webhook의 URL은 나중에 사용하므로 복사해 두고, 탭을 열어 둔다.

    GAS를 사용하여 정기 점검 스크립트 작성



    GoogleDrive에 GAS 프로젝트 만들기



    그 만마. 이름은 선택적으로.
    그런 다음 여기에 스크립트가 있으므로 main.gs를 복사하여 붙여 넣습니다.
    htps : // 기주 b. 코 m / 키치 케 이스케 / 곤뽀 s의 치후에 r

    Const의 정의 작성



    데이터 저장을 위한 하나의 스프레드시트를 생성한다. 시트 이름을 data로 설정
    스프레드시트 URL의 Id(↓의 XXX 부분)를 복사하여 ConstspreadSheetId로 설정https://docs.google.com/spreadsheets/d/XXXXXXXXXXXXXXXXXX/edit#gid=0
    Incoming Webhook에서 게시한 URL을 Constwebhookurl에 붙여넣기

    스크립트의 정기 실행 설정



    「GAS 정기 실행」으로 구그하면 나오므로 자세한 것은 할애.
    정기 실행에 지정하는 함수는 timer() . 대체로 1시간 정도로 좋을지도.

    기술적인 이야기



    라고 해도 Gmail의 액세스는 GAS가 디폴트로 할 수 있어 버리므로, 거의 소스를 읽으면(아마) 알 수 있는 레벨.
    버튼의 부분을 판정하고 있는 처리는 메일의 Body로부터 정규 표현으로 해당하는 텍스트 부분을 추출하고 있는 느낌. 구체적으로 다음 부분
          var messages = thread.getMessages();
          var message = messages[0];
          var subject = message.getSubject();
          var body = message.getBody();
    
          var url = body.match(/<a href="https:\/\/.+\.connpass\.com\/event\/.+\/.+utm_content=detail_btn"/);
          if(url != null) {
            url = url[0].substring('<a href="'.length, url[0].lastIndexOf('/') + 1);
    
            var msg = "*" + subject + "* \n" + url;
            postToSlack(msg);
          }
    
    

    또, 전부의 메일을 판정 대상으로 하면 무거워질 것이 예상되었기 때문에, 전회 체크로부터 이번 체크의 사이에 수신한 메일 20건을 대상으로 하고 있다.

    끝에



    모두 설정이 끝나면 이벤트가 발생하면 이런 느낌으로 알림이 온다.

    좋은 웹페이지 즐겨찾기