Slack에 메시지를 보내는 Python 코드를 작성하기 위해서는 Slack API를 사용해야 합니다. 가장 일반적인 방법은 Slack의 Incoming Webhooks 기능을 사용하는 것입니다. 이 기능을 통해 특정 채널로 메시지를 쉽게 보낼 수 있습니다.
사전 준비
- Slack 워크스페이스에서 Incoming Webhook 생성:
- Slack의 앱 관리 페이지에서 새 앱을 만들고, Incoming Webhook을 설정해야 합니다.
- Webhook URL을 발급받습니다.
import requests import json # 슬랙 메시지 보내기 함수 def send_slack_message(webhook_url, message): headers = { 'Content-Type': 'application/json', } data = { 'text': message, } response = requests.post(webhook_url, headers=headers, data=json.dumps(data)) if response.status_code == 200: print("Message sent successfully!") else: print(f"Failed to send message. Status code: {response.status_code}, Response: {response.text}") # 메인 실행 로직 if __name__ == "__main__": webhook_url = "https://hooks.slack.com/services/XXXXX/XXXXX/XXXXX" # 발급받은 Webhook URL message = "Hello, this is a test message from Python!" send_slack_message(webhook_url, message)
코드 설명:
-
requests 모듈: HTTP 요청을 보내기 위해 사용하는 모듈입니다.
requests.post
메서드를 사용하여 Slack의 Webhook URL에 데이터를 전송합니다. -
send_slack_message 함수: 이 함수는
webhook_url
과message
를 인수로 받아 Slack에 메시지를 전송합니다.webhook_url
: Slack에서 발급받은 Incoming Webhook URL.message
: Slack 채널로 보낼 메시지 내용입니다.
-
메인 실행 부분:
webhook_url
에 Slack에서 발급받은 Webhook URL을 넣습니다.message
에 전송하고자 하는 메시지를 넣습니다.send_slack_message
함수를 호출하여 메시지를 보냅니다.
참고:
- 메시지 형식: 기본적으로 텍스트 메시지를 보내지만, 슬랙 메시지는 JSON 포맷을 사용해 풍부한 형식으로 보낼 수 있습니다. 예를 들어, 블록, 첨부 파일, 이미지 등을 포함할 수 있습니다.
data = { "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "Hello, *this* is a test message from Python!" } } ] }
- 보안: Webhook URL은 매우 민감한 정보이므로, 소스 코드에 직접 포함시키기보다는 환경 변수나 외부 설정 파일에서 가져오는 것이 좋습니다.
이 코드를 실행하면 설정된 Slack 채널로 메시지가 전송됩니다.