반응형
Jen'_'
Jen's Space
Email
GitHub
전체 방문자
오늘
어제
  • 분류 전체보기 (98)
    • Ansible (4)
      • 우아한앤서블 (4)
    • Cloud (19)
      • AWS (17)
      • GCP (2)
    • DevOps (40)
      • Docker (6)
      • Kubernetes (26)
      • CICD (6)
      • Terraform (2)
    • Language (13)
      • Python (12)
      • Node.js (1)
    • Linux (10)
    • etc. (7)
    • 개인기록 (1)
    • AEWS (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 피드백 환영합니다 :)

인기 글

태그

  • ALB
  • EKS
  • terraform
  • Docker
  • karpenter
  • autoscaling
  • jenkins
  • ansible
  • argocd
  • Kubernetes
  • vagrant
  • gitops
  • k8s
  • 쿠버네티스
  • 우아하게앤서블
  • INGRESS
  • 자격증
  • ubuntu
  • AWS
  • CICD

최근 댓글

Jen'_'

Jen's Space

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

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

2023. 6. 13. 19:14
반응형

환경

  • Slack Channel에 Incoming Webhooks 추가
    • https://api.slack.com/messaging/webhooks
  • Json으로 HTTP Requests로 메세지를 전송
    • https://api.slack.com/methods/chat.postMessage

 

샘플 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
    'Language/Python' 카테고리의 다른 글
    • Python 강의 정리 마지막. 클래스
    • Python 강의 정리 8. if __name__ == "__main__":
    • Python 강의 정리 7. 튜플, 람다(map(),filter() 예제)
    • Python 강의 정리 6. 함수
    Jen'_'
    Jen'_'
    DevOps 엔지니어 Jen의 기술 블로그 / 이메일: jenakim47@gmail.com

    티스토리툴바