슬랙봇 연동하기

level·2023년 8월 24일

TIL

목록 보기
84/95
  1. 슬랙 워크스페이스 생성
    https://slack.com/intl/ko-kr/get-started#/landing

  2. 앱 생성
    api.slack.com
    create an app
    from scratch
    app feature 에서 bots 선택
    권한설정
    워크스페이스에 추가

  1. slack.ts 작성, 게시물작성 api에 메세지 발송 로직 작성
import { WebClient } from '@slack/web-api';

const token = process.env.BOT_TOCKEN;
console.log(token);
const web = new WebClient(token);

export const sendSlackMessage = async (message: string) => {
  try {
    const result = await web.chat.postMessage({
      channel: '채널ID',
      text: message,
    });

    console.log('Message sent: ', result.ts);
  } catch (error) {
    console.error('Error sending message to Slack: ', error);
  }
};
  1. 권한 에러
Error sending message to Slack:  Error: An API error occurred: not_authed
슬랙봇 권한설정 후 다시 시도해서 같은 에러가 발생함

console.log(token) -> undefined

환경변수를 받아오지 못하는 문제.

슬랙 코드를 클래스화해서 configService를 사용하는 방법으로 변경
  1. 슬랙 모듈, 서비스 생성

  2. app.모듈에 추가되었는지 확인, 슬랙모듈에서 슬랙서비스 export

  3. 토큰 환경변수 configService사용해 불러오기

import { ConfigService } from '@nestjs/config';

//...

const token = this.configService.get<string>('SLACK_BOT_TOKEN');
  1. 슬랙서비스에 작성한 것에 맞춰서 게시물서비스의 슬랙메세지 전송 로직 수정

참고:
https://velog.io/@hyunjkluz/Node.js-TypeScript%EB%A1%9C-Slack-%EC%95%8C%EB%A6%BC-Bot-%EA%B5%AC%ED%98%84%ED%95%B4%EB%B3%B4%EA%B8%B0

https://www.youtube.com/watch?v=Zrp-M-G6_Nw

0개의 댓글