반응형
안녕하세요.
이번 글에서는 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을 보낼 수 있게 됩니다.
이 글이 파이썬을 통한 슬랙앱 세팅 과정에 도움이 되셨기를 바라겠습니다.
잘 봐주셔서 감사드립니다.
'Python > Slack API' 카테고리의 다른 글
[Slack Bolt] 파이썬 Slack App 슬래시(/) 커맨드 생성 방법 (2) | 2024.10.03 |
---|---|
Slack Webhook 설정 방법 / 파이썬 hook 보내기 예제 (0) | 2023.12.04 |
[Slack Bolt] 파이썬 Slack App 댓글 기능 구현 예제 (4) | 2023.11.24 |