Skip to content

슬랙봇 개발 시작

YamKim edited this page Jun 5, 2021 · 1 revision

가장 처음 공부했던 것

슬랙봇 app 생성하기 (링크: https://api.slack.com/)

  1. 사이트 홈 화면에서 Create a custom app 버튼을 클릭합니다.
  2. Create New App 버튼을 눌러서 새로운 app을 생성합니다.
  3. From scratch -> 봇의 이름(App Name)과 사용할 workspace를 지정합니다.

슬랙 api 토큰 받아오기

  1. 스코프(OAuth & Permissions 탭에서)를 세팅합니다.
    • Bot Tokens ScopesUser Token Scopes에서 Add an OAuth Scope 버튼을 누르면 추가할 수 있습니다.
    • 저희는 현재 다음과 같은(image source) 스코프들을 사용하고 있습니다.(추후 변경 될 수도 있음)
  2. Workspace에 bot을 설치 후 slack OAuth Token 발급 받습니다.
    • 스코프를 세팅하면, OAuth & Permissions 탭 가장 위에서 Install to Workspace 버튼을 클릭합니다.
    • Allow 버튼을 눌러서 해당 워크스페이스에 app을 추가합니다.
    • OAuth & Permissions 탭에 User OAuth Token과, Bot User OAuth Token이 발급됐는지 확인합니다.
    • 우리는 Bot User OAuth Token을 nodejs의 환경설정(.env 파일)에서 사용하게 됩니다.

Slash Commands 기능 사용하기

  • bot에게 어떤 명령을 할지 명시적으로 가르쳐주는 기능입니다.
    (slack bot에서 /bot where {intra_id} 등의 명령을 수행할 때 사용됩니다.)
  • bot이 명령어를 받으면, 저희가 원하는 주소로 bot이 request 하도록 설정합니다.

Slash Commands 세팅하기

  1. Create New Command 버튼을 눌러 세팅을 시작합니다.
  2. Command: 봇 호출 명령어를 기입합니다.
    (ex. /bot)
  3. Reuest URL: 명령어 및 내용을 보낼 URL을 적습니다.
    (ex. https://bot.42seoul.io/slack/slashs)
  4. Short Description: 사용 설명법을 작성합니다.

Slash Commands NodeJS에서 사용하기

  • ./routes/slack_slashs의 아래 코드와 같이 사용할 수 있습니다.
// 만약, /bot where yekim이 입력된 경우
router.post('/', async (req, res, next) => {
  const { body } = req;
  // body.command: '/bot'
  // body.text: 'where yekim'
  // body.channel_id: 서버에서 해당 채널에 메세지를 남기고 싶은 경우 필요
  ...
}

Event Subscriptions 기능 사용하기