반응형
환경
- Slack Channel에 Incoming Webhooks 추가
- Json으로 HTTP Requests로 메세지를 전송
샘플 curl 요청
curl -X POST --data-urlencode "payload={\"channel\": \"#test\", \"username\": \"webhookbot\", \"text\": \"이 항목은 #개의 test에 포스트되며 webhookbot이라는 봇에서 제공됩니다.\", \"icon_emoji\": \":ghost:\"}" https://hooks.slack.com/services/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
채널에 다음과 같이 표시됩니다.
curl 대신 python의 requests.post를 사용해서 slack webhook을 전송하려고 합니다.
Python Code
import requests
def sendMessage():
try:
url = "https://hooks.slack.com/services/xxxxxxxx/xxxxxx/xxxxxxxxxxx"
header = {'Content-type': 'application/json'}
icon_emoji = ":slack:"
username = "TEST"
attachments = [{
"color": "good",
"text": "😎😎😎\n TEST Message 전송"
}]
data = {"username": username, "attachments": attachments, "icon_emoji": icon_emoji}
print(data)
# 메세지 전송
return requests.post(url, headers=header, json=data)
except Exception as e:
logger.error("Slack Message 전송에 실패했습니다.")
logger.error("에러 내용 : " + e)
exit(0)
if __name__ == "__main__":
sendMessage()
채널 확인
전송이 잘 되었습니다!
반응형
'Language > Python' 카테고리의 다른 글
Python 강의 정리 마지막. 클래스 (0) | 2021.05.03 |
---|---|
Python 강의 정리 8. if __name__ == "__main__": (0) | 2021.05.03 |
Python 강의 정리 7. 튜플, 람다(map(),filter() 예제) (0) | 2021.05.03 |
Python 강의 정리 6. 함수 (0) | 2021.05.03 |
Python 강의 정리 5. 리스트 뒤집기, enumerate() 함수 (0) | 2021.05.02 |