Slack은 업무용 툴이다. 업무용 카카오톡이라고 보면 된다.
서론은 제외하고 어찌됐던 이번에 Slack에 메세지를 뿌리는 일을 하게 되어서 이 내용에 대해서 정리해보려고 한다.
한 가지 주의할 점은 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);
링크 미리보기
가 매번 지원하는 것이 아니라는것을 알게 되었다.URL에서 도메인만 뽑아낼 일이 있어서 만든 정규표현식 공유한다.
https://www.naver.com
에서 naver
만 남긴다.
정규표현식 [^//www.]+(?=.com\/)
을 쓰면 된다.
간단하게 설명하자면 대괄호[]안에 ^가 시작하면 괄호 안의 항목을 제외한 모든 문자열과 일치시킨다.
즉, naver.com만 남게되는 것이고 (?=.com\/) 전방 표현식으로 .com/앞에 있는 문자를 일치시킨다.
후방표현식은 앞으로 모든 브라우저에서 지원 종료한다고해서 쓰지 않도록 하자!!
정규표현식 도움되는 링크
정규표현식 테스트
정규표현식 위키
혹시 나같은 실수를 하는 사람이 있을까봐 남긴다.
S3 이미지를 슬랙 메세지로 보내려고 했는데 엑박이 자꾸 뜨길래 확인해보니 S3 이미지 권한 문제였다.. S3 이미지 권한에서 권한 잘 부여하고 이용하자!
mrkdwn에서 <link|text> 형식으로 쓰게 되면 text에 링크가 걸려 깔끔하게 slack에서 미리보기 기능도 사용할 수 있다.