본문 바로가기
Python

[Python] slack 으로 메시지 보내기 (webhook)

by bryan.oh 2023. 12. 16.
반응형

 

우선 slack 아래 주소로 접속합니다.

 

https://api.slack.com/messaging/webhooks

 

Sending messages using Incoming Webhooks

Creating an Incoming Webhook gives you a unique URL to which you send a JSON payload with the message text and some options.

api.slack.com

 

Create your Slack app 클릭

 

From scratch 클릭

 

 

App 이름과 slack 의 어떤 워크스패이스에서 사용될 지 선택합니다.

 

 

Webhooks 말고도 다른 방법들도 있습니다만, 여기에서는 Webhooks 를 사용합니다.

 

 

On 으로 변경

 

[Add New Webhhok to Workspace] 클릭

 

어떤 채널로 보낼 지 선택,

여기서 위의 [Add New Webhhok to Workspace] 를 클릭해서 여러 채널을 계속 추가할 수 있습니다. 

 

생성되면 url 이 생성되고 copy버튼을 눌러 커맨드 명령어를 복사합니다.

그리고 터미널에서 붙혀넣기 하고 실행해보면 slack 에 메시지가 가는것을 확인할 수 있습니다.

 

 

 

 

Python

 

slack client library 를 아래 중 하나로 설치

# 최신버전
pip install slackclient

# 버전지정
pip install slackclient==2.9.4

# requirements.txt 로 설치
slackclient==2.9.4
# requests 도 필요합니다.
pip install requests

 

blocks = [
    {
        "type": "section",
        "text": {
            "type": "mrkdwn",
            "text": "This is a section block with a button."
        },
        "accessory": {
            "type": "button",
            "text": {
                "type": "plain_text",
                "text": "Click Me",
                "emoji": true
            },
            "value": "click_me_123",
            "action_id": "button-action"
        }
    }
]

data = json.dumps({
    "blocks": blocks
})
return requests.post('your_feedback_hook_url', data=data, headers={'Content-type': 'application/json'})

 

참고

메시지 포멧은 아래 링크에서 확인할 수 있습니다.

https://api.slack.com/block-kit

 

Block Kit

A clean and consistent UI framework for Slack apps

api.slack.com

 

메시지 미리보기도 할 수 있는데요,

아래와 같은 링크를 누르고, 

 

아래와 같이 Preview ... 버튼을 누르면

 

이렇게 좌측엔 preview, 우측엔 format json 을 생성해볼 수 있습니다.

그리고 좌측 메뉴에는 여러가지 항목들이 있으니, 이것들을 누르면 예제가 추가됩니다.

 

728x90
반응형

댓글