Language/Python

Python으로 Slack에 메세지 전송하는 방법(Incoming Webhooks)

Jen'_' 2023. 6. 13. 19:14
반응형

환경

 

샘플 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()

 

채널 확인

 

전송이 잘 되었습니다!

반응형