반응형
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)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 피드백 환영합니다 :)

인기 글

태그

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

최근 댓글

Jen'_'
Language/Python

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

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

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.