Slack Incoming Webhook으로 메시지를 전송한다. 빌드/테스트/배포 결과, 작업 완료 알림 등을 Slack 채널에 보낼 때 사용.
Slack Incoming Webhook 을 통해 채널에 메시지를 전송한다. 별도 봇 토큰 없이 URL 하나로 동작하므로 CI/로컬 자동화에 가볍게 붙이기 좋다.
SLACK_WEBHOOK_URL) — 소스코드/스킬 문서에 하드코딩 금지curl 한글 깨짐 이슈가 있으므로 Python urllib 사용 권장export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/XXX/YYY/ZZZ"
python -c "
import json, os, urllib.request
url = os.environ['SLACK_WEBHOOK_URL']
data = json.dumps({'text': 'MESSAGE_HERE'}).encode('utf-8')
req = urllib.request.Request(
url, data=data,
headers={'Content-Type': 'application/json; charset=utf-8'}
)
with urllib.request.urlopen(req) as res:
assert res.status == 200, f'slack webhook failed: {res.status}'
print('Sent!')
"
python scripts/slack.py "보낼 메시지"
| 용도 | payload |
|---|---|
| 단순 텍스트 | {"text": "..."} |
| 채널 오버라이드 | {"text": "...", "channel": "#ops-alerts"} |
| 멘션 | {"text": "<@U012ABCDE> 배포 실패"} |
| Block Kit | {"blocks": [...]} (리치 레이아웃 필요 시) |
.env 로 관리 (커밋 금지)curl -d 로 한글 직접 전송 시 인코딩 깨짐