Python/Slack API

파이썬으로 슬랙 DM을 보내는 방법

jimmy_AI 2025. 2. 11. 00:45
반응형

안녕하세요.

이번 글에서는 Python에서 slack 개인 메시지를 전송하는 방법을 정리해보도록 하겠습니다.

 

 

슬랙앱 세팅

이 방법을 위해서는 Slack bot 토큰(xoxb-로 시작)

권한 설정이 필요한데요.

 

이 과정이 필요하신 분들은 아래의 포스팅을 참고하여 세팅해주시면 됩니다.

 

슬랙앱(Slack App) 생성 설정 방법 완벽 가이드

Slack에서는 슬랙앱을 만들어 워크스페이스 내에서 원하는대로 여러 기능을 수행하는 봇을 운영할 수 있는 기능을 제공합니다. 이를 위하여 슬랙앱을 처음에 만들 때, 권한 등 여러 가지 항목에

jimmy-ai.tistory.com

 

slack DM을 보내기 위하여 필요한 권한의 목록은 다음과 같습니다.

# 필수
im:write
chat:write

# 커스텀할 기능에 따라 필요
im:read
users:read

 

추가로, DM 기능 활성화를 위해서 App Home 메뉴 > Show Tabs에서

Messages Tab의 토글ON으로 설정해주는 과정이 필요합니다.

 

 

슬랙 DM 전송 파이썬 코드

위 과정이 완료되었다면,

Slack DM을 전송하는 Python 코드를 실행해볼 수 있습니다.

코드 스니펫은 다음과 같습니다.

from slack_sdk import WebClient # 설치 필요 시 pip install slack_sdk

# 발급받은 Slack bot 토큰 입력
client = WebClient(token="xoxb-your-bot-token")

def send_dm(user_id, message):
    # DM 채널 열기 (기존 채널이 있으면 해당 채널을 반환)
    response = client.conversations_open(users=user_id)
    channel_id = response['channel']['id']

    # 메시지 보내기
    client.chat_postMessage(
        channel=channel_id,
        text=message
    )
    print(f"메시지가 성공적으로 전송되었습니다: {user_id}")

if __name__ == "__main__":
    user_id = "U1234567890"  # 메시지를 보낼 사용자의 Slack user ID
    message = "보낼 메시지 예시"
    send_dm(user_id, message)

 

이 방법은 유저의 id만 있으면

유저가 해당 앱과 DM을 나눈 적이 있는 여부와 관계 없이

DM을 보낼 수 있게 됩니다.

 

이 글이 파이썬을 통한 슬랙앱 세팅 과정에 도움이 되셨기를 바라겠습니다.

잘 봐주셔서 감사드립니다.