python에서 slack 채널에 프로그래밍 방식으로 이벤트 알림

5505 단어 devopsproductivity
전자 상거래 웹 사이트의 백엔드 개발을 담당하고 있고 회사 영업 팀이 고객이 특정 여유 채널에 주문할 때마다 알림을 받기를 원한다고 가정합니다. slack API를 사용하여 이를 쉽게 달성하는 방법을 살펴보겠습니다.

이 게시물에서는 백엔드가 django/flask/fastapi와 같은 파이썬 기반 웹 프레임워크를 사용하여 작성되었다고 가정합니다. 그러나 우리는 모든 프레임워크를 사용하여 이 작업을 수행할 수 있습니다. 왜냐하면 우리가 해야 할 일은 http POST 요청을 하는 것이고 우리가 원하는 모든 언어를 사용하여 그렇게 할 수 있기 때문입니다.

새 Slack 앱 만들기


  • + Add apps 버튼 클릭
  • 클릭 Browse App Directory
  • 그러면 브라우저에서 열리는 외부 링크로 이동합니다.
    이제 클릭build
  • 다음 페이지에서 Create an App를 클릭하십시오.
  • 선택 From Scratch
  • 앱 이름을 "Order-Alert-Bot"으로 지정하고 여유 공간을 선택합니다.
  • 우리 앱에 대해 활성화 Incoming Web hooks
  • 이 봇이 게시할 채널을 지정하십시오.
  • 이제 이 앱에 대해 새 웹훅 URL이 추가됩니다. Webhook url 만 복사하면 됩니다. 이것은 우리가 http POST 요청을 할 api 엔드포인트가 될 것입니다.

  • Slack API를 호출합니다.



    복사한 webhook url 값으로 환경 변수SLACK_ORDER_ALERTS_BOT_WEBHOOK_URL를 설정했다고 가정해 보겠습니다.

    def slack_notify_new_order(order_id: int, username: str, amount: float):
    
        details = f'[Details](https://admin.mysite.com/core/order/{order_id})'
        message = f'*{username}* has placed a new order of amount *{amount}*. {details}'
        payload = {'text': message}
    
        import requests
        import os
    
        response = requests.post(
            os.environ.get('SLACK_ORDER_ALERTS_BOT_WEBHOOK_URL'),
            data=str(payload)
        )
        return response
    


    이것은 몇 가지 가능한 매개변수를 사용하여 구축하는 데모 메시지일 뿐입니다. 사용 사례의 경우 여유 메시지 문자열에 필요한 모든 값을 보간할 수 있습니다.

    이제 코드의 아무 곳에서나 이 함수를 호출하면 봇이 지정된 채널로 메시지를 보냅니다. 예를 들어 django를 사용하는 경우 새 주문 생성 이벤트를 처리하는 api 보기 함수 내에서 이 함수를 호출할 수 있습니다. 완료 :D


    예상대로 주문 알림 봇은 고객이 새 주문을 할 때마다 메시지를 게시합니다.

    좋은 웹페이지 즐겨찾기