웹사이트를 운영하다보면 실시간으로 알림을 받아야하는 경우가 있습니다.
(현재 개발중인 동아리 웹사이트를 예로들면 에러 , 암벽화 대여 등)
저는 이를 Slack과 Slack Webhook을 통해 구현했습니다.
1. Slack에 앱 추가하기
원하는 워크스페이스의 채널로 들어가 아래 사진 순서대로 클릭!
이렇게 슬랙에서 해야할 일은 전부 끝났습니다.
코드로 구현해볼게요.
2. Nest.js 앱에 추가하기
@Slack/webhook 라이브러리를 사용하겠습니다.
npm install @slack/webhook
위에 복사했던 웹훅 url이 있습니다.
import { IncomingWebhook } from '@slack/webhook';
const url = this.configService.get('SLACK_ERROR_WEBHOOK_URL');
const webhook = new IncomingWebhook(url);
...
await webhook.send({
attachments: [
{
...
},
],
});
filter, interceptor , logging etc.. 필요한 곳에 위와 같은 형식으로 코드를 짜서 넣으면 됩니다.
저는 interceptor에 적용을 해 동아리원이 암벽화를 빌리거나 반납한 경우 알림이 오도록 설정을 했습니다.
채널별로 웹훅을 만들 수 있으므로, 필요한 채널에 웹훅을 만들어 알림으로 사용할 수 있습니다.