적당한 프롬프트 입력으로 아래와 같은 코드를 생성할 수 있지만 코드의 품질이나 실제 작동하는지 등
개발자가 스스로 판단해야 하는 것들이 아직 많다.
그러나, 처음 부터 모든 코드를 작성하지 않아도 되는 점은 확실히 큰 장점인 것 같다
질문>
"슬랙 incoming webhooks 를 사용하여 파이썬 코드로 슬랙 채널에 메시지를 보낼 수 있는 몇가지 예시를 보여 줘"
답변>
Slack의 Incoming Webhooks을 사용하여 Python 코드로 메시지를 보내는 방법을 몇 가지 예제로 보여드릴게요.
1. 기본적인 메시지 보내기
먼저, Slack의 Incoming Webhooks URL을 발급받아야 합니다.
(워크스페이스 설정에서 Webhooks을 활성화한 후, 특정 채널에 대한 Webhook URL을 생성해야 합니다.)
예제 1: 간단한 메시지 보내기
import requests
import json
# Slack Webhook URL (본인의 Webhook URL로 변경하세요)
SLACK_WEBHOOK_URL = "https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXX"
# 보낼 메시지 데이터
payload = {
"text": "Hello, Slack! 🖐 This is a test message from Python."
}
# 요청 보내기
response = requests.post(SLACK_WEBHOOK_URL, data=json.dumps(payload), headers={'Content-Type': 'application/json'})
# 응답 확인
if response.status_code == 200:
print("메시지가 성공적으로 전송되었습니다!")
else:
print(f"메시지 전송 실패: {response.status_code}, {response.text}")
2. 메시지에 사용자 태그하기
Slack에서 특정 사용자를 태그하려면 <@사용자ID> 형식으로 작성하면 됩니다.
예제 2: 특정 사용자 태그해서 메시지 보내기
payload = {
"text": "Hey <@U12345678>, please check this message!"
}
response = requests.post(SLACK_WEBHOOK_URL, data=json.dumps(payload), headers={'Content-Type': 'application/json'})
(여기서 U12345678은 태그할 Slack 사용자의 ID입니다. Slack에서 /whois @username 명령어를 사용하면 확인할 수 있습니다.)
3. 블록 스타일 메시지 (더 구조적인 메시지)
Slack의 블록(Blocks) 포맷을 사용하면 더 다양한 형식의 메시지를 보낼 수 있습니다.
예제 3: 블록 스타일 메시지
payload = {
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Hello, Slack!* 🎉\nThis is a structured message with blocks."
}
},
{
"type": "divider"
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Here is a button you can click:"
},
"accessory": {
"type": "button",
"text": {
"type": "plain_text",
"text": "Click Me"
},
"url": "https://www.slack.com"
}
}
]
}
response = requests.post(SLACK_WEBHOOK_URL, data=json.dumps(payload), headers={'Content-Type': 'application/json'})
4. 이모지 및 사용자 프로필 변경하기
Webhook 메시지에서 사용자 프로필 이미지나 이름을 커스텀할 수도 있습니다.
예제 4: 사용자 프로필 및 이모지 변경
payload = {
"username": "Python Bot", # 보낼 메시지의 사용자 이름 변경
"icon_emoji": ":robot_face:", # 메시지의 아이콘 변경
"text": "I am a Python bot sending messages to Slack! 🤖"
}
response = requests.post(SLACK_WEBHOOK_URL, data=json.dumps(payload), headers={'Content-Type': 'application/json'})
5. 첨부 파일을 포함한 메시지
Slack에서는 attachments 필드를 사용하여 메시지에 색상을 추가하거나 여러 정보를 포함할 수 있습니다.
예제 5: 첨부 파일을 포함한 메시지
payload = {
"attachments": [
{
"fallback": "This is an important update!",
"color": "#36a64f", # 녹색
"title": "System Alert",
"text": "CPU usage is over 90%! ⚠️",
"footer": "Monitoring System",
"ts": 1647096820 # 타임스탬프 (선택 사항)
}
]
}
response = requests.post(SLACK_WEBHOOK_URL, data=json.dumps(payload), headers={'Content-Type': 'application/json'})
6. 멀티라인 메시지 보내기
Slack에서는 \n을 사용하면 줄바꿈이 가능합니다.
예제 6: 여러 줄 메시지 보내기
payload = {
"text": "🔥 *Server Alert* 🔥\n- CPU: 95%\n- Memory: 80%\n- Disk: 70%\n\nPlease take action immediately!"
}
response = requests.post(SLACK_WEBHOOK_URL, data=json.dumps(payload), headers={'Content-Type': 'application/json'})
이제 Slack의 Incoming Webhooks을 이용하여 다양한 방식으로 메시지를 보낼 수 있습니다!
어떤 방식이든 requests.post()를 이용해 쉽게 슬랙 메시지를 보낼 수 있으니, 원하는 스타일로 커스텀해보세요.
'IT > SW Dev.' 카테고리의 다른 글
쉬운 AI Coding - 공학용 계산기 코드 생성 예시(html, css, javscript, math.js) (1) | 2025.02.13 |
---|---|
쉬운 AI Coding - 웨이퍼맵(wafermap) 코드 생성 예시(html, css, javascript) (0) | 2025.02.13 |
코테(코딩 테스트)에서 주로 사용하는 알고리즘(자료구조, 그리디 등)에 대해 아시나요? (0) | 2025.02.13 |
slack 에 대해 아시나요? - 소개, 기능 및 사용 사례 (0) | 2025.02.13 |
AX(AI Transformation) 과 DX(Digital Transformation) 비교 (0) | 2025.02.11 |