본문 바로가기
보안 및 개발/ETC...

슬랙 봇(Slack Bot) 만들기 초보자 가이드: API 설정부터 파이썬 연동까지

by CH@3M 2026. 2. 5.

업무 효율을 높이는 가장 쉬운 방법, 바로 슬랙 봇(Slack Bot) 활용입니다. 반복적인 알림 확인이나 데이터 수집을 자동화하고 싶다면 직접 봇을 만들어보는 것이 가장 좋습니다.

오늘은 파이썬(Python)을 이용해 가장 기초적인 슬랙 봇을 만드는 과정을 단계별로 정리해 보겠습니다.


1. 슬랙 앱(Slack App) 생성 및 설정

가장 먼저 슬랙 API 사이트에서 봇의 '두뇌'가 될 앱을 생성해야 합니다.

  1. **Slack API 대시보드**에 접속합니다.
  2. 'Create New App' 버튼을 클릭하고 **'From scratch'**를 선택합니다.
  3. App Name을 정하고, 봇을 설치할 Workspace를 선택합니다.

(참고: 여기서 App Name은 나중에 슬랙에서 보여질 이름입니다.)


2. 권한(Scopes) 설정하기

봇이 채널에 메시지를 보낼 수 있도록 권한을 부여해야 합니다.

  1. 왼쪽 메뉴에서 **'OAuth & Permissions'**로 이동합니다.
  2. 'Scopes' 항목 중 **'Bot Token Scopes'**에서 **'Add an OAuth Scope'**를 클릭합니다.
  3. 다음 권한을 추가합니다:
    • chat:write: 메시지 보내기 권한 (필수)
    • channels:read: 채널 목록 보기 권한 (권장)
  4. 페이지 상단의 **'Install to Workspace'**를 클릭하여 설치를 완료합니다.

※ 중요: 설치 후 생성되는 Bot User OAuth Token(xoxb-로 시작)을 따로 메모장에 복사해두세요. 이 토큰이 있어야 파이썬 코드로 봇을 조종할 수 있습니다.


3. 슬랙 채널에 봇 초대하기

봇이 앱으로 등록되었다고 해서 자동으로 모든 채널에 들어가는 것은 아닙니다. 봇이 메시지를 보낼 채널에 직접 초대해줘야 합니다.

  • 메시지를 보낼 슬랙 채널에 접속합니다.
  • 채팅창에 /invite @봇이름을 입력하여 봇을 초대합니다.

4. 파이썬(Python) 코드로 메시지 보내기

이제 실전입니다. slack_sdk 라이브러리를 사용하면 아주 간편합니다.

라이브러리 설치

터미널(CMD)에서 아래 명령어를 입력해 라이브러리를 설치합니다.

Bash
 
pip install slack_sdk

파이썬 소스 코드

아래 코드를 복사해서 slack_test.py 파일을 만들어 실행해 보세요.

Python
 
import logging
from slack_sdk import WebClient
from slack_sdk.errors import SlackApiError

# 2단계에서 복사한 본인의 토큰을 입력하세요
slack_token = "xoxb-본인의-토큰-입력"
client = WebClient(token=slack_token)

try:
    # channel: 메시지를 보낼 채널명(예: #general) 혹은 채널 ID
    # text: 보낼 메시지 내용
    response = client.chat_postMessage(
        channel="#general", 
        text="안녕하세요! 파이썬으로 만든 슬랙 봇입니다. 🚀"
    )
    print("메시지 전송 성공!")
except SlackApiError as e:
    # 에러 발생 시 출력
    print(f"오류 발생: {e.response['error']}")

5. 결과 확인 및 팁

코드를 실행한 뒤 슬랙 채널을 확인해 보세요. 봇이 보낸 메시지가 잘 도착했다면 성공입니다!

💡 운영 팁:

  • 보안 주의: 토큰(xoxb-...)이 깃허브(GitHub) 같은 공적인 장소에 노출되지 않도록 주의하세요. 노출될 경우 슬랙에서 자동으로 토큰을 만료시키기도 합니다.
  • 확장성: Event Subscriptions 기능을 활용하면 사용자가 보낸 메시지에 대답하는 '대화형 봇'으로 업그레이드할 수 있습니다.
반응형