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 채널로 메시지가 전송됩니다.
