r잡초처럼
바른 프로그래밍
r잡초처럼
전체 방문자
오늘
어제
  • 분류 전체보기 (124)
    • FastAPI (7)
    • 끄적끄적 (2)
    • Python (17)
    • Django (31)
    • Database (2)
    • Docker (7)
    • 디자인패턴 (2)
    • CS 공부 (12)
      • 알고리즘 (2)
      • 자료 구조 (1)
      • 네트워크 (7)
      • IT 지식 (1)
      • 운영체제 (1)
    • 기타 팁들 (10)
    • Aws (2)
    • 독서 (1)
    • 코딩테스트 공부 (1)
      • 백준 (0)
      • 프로그래머스 (1)
    • DevOps (13)
    • TIL (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 책 리뷰
  • 케이블의 종류
  • dotenv
  • 파이썬 클린 코드
  • 랜과 왠
  • pycharm
  • 랜 카드
  • 네트워크
  • poetry
  • 컴퓨터 기본 지식
  • encoding
  • docker
  • validate
  • 완벽한 IT 인프라 구축을 위한 Docker
  • 7장
  • preonboarding
  • depends
  • Batch
  • 모두의 네트워크
  • query param
  • 상속과 컴포지션
  • 전기 신호
  • pytest
  • CS 지식
  • 물리 계층
  • fastapi
  • 6장
  • cp949
  • 5장 회사에서 하는 랜 구성
  • 상속 안티 패턴

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
r잡초처럼

바른 프로그래밍

Django + Slack
카테고리 없음

Django + Slack

2023. 2. 18. 13:38

Web에서 일어나는 이벤트(회원 가입, 문의 등)를 Slack에서 이벤트로 받아보고 싶을 수 있다. (그래야만 한다. 안 궁금하면 어쩔 수 없고...) 한번 해보자

Slack

Slack Webhook 생성하기

1. 우선 App을 생성하자

2. 해당 화면에서 From scrath를 선택하자

 From an app manifest는 Slack 공식 문서에선 다음과 같이 설명한다.

매니페스트는 Slack 앱용 YAML 또는 JSON 형식의 구성 번들입니다. 매니페스트를 사용하면 UI 또는 API를 사용하여 사전 정의된 구성으로 앱을 만들거나 기존 앱의 구성을 조정할 수 있습니다.
매니페스트를 공유하고 재사용할 수 있으므로 프로덕션 앱의 개발 복제본을 만드는 간단한 방법이 제공됩니다.

다음에 자세히 살펴보자(우선 넘어가자)

3. 여기서 App Name과 workspace를 설정하자.

4.그리고 Webhooks를 선택하자. 내가 하려는 건 웹에서 일어나는 이벤트를 알려는 거니까

우측 상단에 On으로 토글을 표시하고 Add New Webhook to Workspace 가 나오는데 알림을 받고자 하는 채널을 설정하고 Sample Url을 보내면 해당 채널로 메시지가 온다

sample url
안뇽~

잘 보내진 것을 확인했다. 그러면 Webhook Url(Sample 말고)을 Copy 해놓고 장고에 붙여보자

Django

Django 세팅

기본적으로 장고에 대한 이해가 있다고 가정한다.

Django 프로젝트 생성한 뒤의 모습이다.

Django와 Slack 연동하기

간단하게 유저 정보를 저장하는 로직을 짜고 여기서 정보가 저장되면 Slack으로 메시지가 오도록 만들었다

from slack_sdk.webhook import WebhookClient

slack_url = '...'
webhook = WebhookClient(slack_url)


def post(request):
    if request.method == 'POST':
        ...
         response = webhook.send(
            text='유저가 가입했습니다.',
        )
        ...

그리고 POST를 날리면 슬랙에 알림이 오는 걸 확인할 수 있다.


참고

https://slack.dev/python-slack-sdk/webhook/index.html

 

Webhook Client — Python Slack SDK

RetryHandler With the default settings, only ConnectionErrorRetryHandler with its default configuration (=only one retry in the manner of exponential backoff and jitter) is enabled. The retry handler retries if an API client encounters a connectivity-relat

slack.dev

https://somjang.tistory.com/entry/Python-Slack-WebHooks-%EC%9D%84-%ED%86%B5%ED%95%B4-%EC%9E%91%EC%97%85-%EC%A7%84%ED%96%89%EC%83%81%ED%99%A9-%EC%95%8C%EB%A6%BC-%EB%B0%9B%EC%95%84%EB%B3%B4%EA%B8%B0-feat-Incoming-WebHooks

    r잡초처럼
    r잡초처럼
    오늘보다 내일 더 나은 개발자가 되기 위한 노력을 기록하는 블로그 입니다.

    티스토리툴바