Nest에서 Slack으로 메세지 보내기

InnomDB·2022년 6월 3일
1

Nest

목록 보기
4/6

Slack Block Kit

Slack은 업무용 툴이다. 업무용 카카오톡이라고 보면 된다.
서론은 제외하고 어찌됐던 이번에 Slack에 메세지를 뿌리는 일을 하게 되어서 이 내용에 대해서 정리해보려고 한다.

AWS_lmabda를 이용해서 보낸다.

slack에 메세지를 보낼 수 있는 패턴에 대한 링크는 아래 걸어두겠다.

Reference: Layout blocks

한 가지 주의할 점은 attachments안에 blocks을 넣고 사용하면 링크 미리보기가 안나온다.
링크 미리 보기 조건에 충족하여도 미리보기가 안나온다.

slack에 메세지를 보내기 위해서는 axios도 설치하자!!

    const config: AxiosRequestConfig = {
      url: 슬랙훅 URL,
      method: 'POST',
      timeout: 5000,
      data: `payload=${encodeURIComponent(payload)}`,
    };

payload안에 slack 문법이 들어가 있다. payload는 단순 변수 이름일 뿐이다. data로 지어도 상관 없고 원하는 이름으로 지어서 보내자~ 문법이 어렵다면 제일 상단의 링크를 통해 들어간 후 Templates를 보면서 문법을 읽히자!!
참고로 나도 원하는 형태로 커스텀하는데 똥꼬쇼 엄청했다... 사실 아직도 불만족스럽다

이제 마지막으로 필요한 설정들을 세팅해준 후 axios를 통해 보내면 된다.

      await axios(config);

slack에 대해서 알게된 점은 링크 미리보기가 매번 지원하는 것이 아니라는것을 알게 되었다.

slack은 마크다운을 지원하는데 100% 지원이 아니라서 꽤나 까다롭다. 마크다운에서도 지원하는 것들을 잘 살펴가며 커스텀 메세지를 보내야 한다.

보너스

URL에서 도메인만 뽑아낼 일이 있어서 만든 정규표현식 공유한다.
https://www.naver.com에서 naver만 남긴다.
정규표현식 [^//www.]+(?=.com\/)을 쓰면 된다.
간단하게 설명하자면 대괄호[]안에 ^가 시작하면 괄호 안의 항목을 제외한 모든 문자열과 일치시킨다.
즉, naver.com만 남게되는 것이고 (?=.com\/) 전방 표현식으로 .com/앞에 있는 문자를 일치시킨다.
후방표현식은 앞으로 모든 브라우저에서 지원 종료한다고해서 쓰지 않도록 하자!!
정규표현식 도움되는 링크
정규표현식 테스트
정규표현식 위키

주의

혹시 나같은 실수를 하는 사람이 있을까봐 남긴다.
S3 이미지를 슬랙 메세지로 보내려고 했는데 엑박이 자꾸 뜨길래 확인해보니 S3 이미지 권한 문제였다.. S3 이미지 권한에서 권한 잘 부여하고 이용하자!

Slack에서 텍스트에 링크 거는법

mrkdwn에서 <link|text> 형식으로 쓰게 되면 text에 링크가 걸려 깔끔하게 slack에서 미리보기 기능도 사용할 수 있다.

profile
이노오오옴

0개의 댓글