Python/Slack API

Slack Webhook 설정 방법 / 파이썬 hook 보내기 예제

jimmy_AI 2023. 12. 4. 23:45
반응형

슬랙 API의 기능으로 Webhook을 특정 채널로 설정하는 방법을 정리해보고,

Python의 requests 기능을 통하여 hook 메시지를 전송하는 예시를

간단 명료하게 정리하여 다루어보도록 하겠습니다.

 

 

Slack Webhook 설정 방법

1. Slack App 설정 페이지(https://api.slack.com/apps)에 접속한 뒤, 원하는 앱을 고르고

좌측 사이드바 메뉴 중 Incoming Webhooks 메뉴에 들어가줍니다.

 

2. Active Incoming Webhooks를 on으로 바꿔주고,

상단에 등장한 재설치 경고문의 링크를 통하여 재설치 페이지로 이동합니다.

 

3. hook 메시지를 보내기 원하는 채널을 골라주고,

재설치 권한 허용을 진행합니다.

 

4. url이 생성되었으면, Copy 버튼을 눌러 복사해줍니다.

단, 유출이 되지 않도록 유의하며, 만일 다른 채널에도 보내고 hook를 보내고 싶다면

아래의 Add New Webhook to Workspace 메뉴를 통하여 추가 생성을 해주면 됩니다.

 

반응형

 

파이썬 Slack Webhook 전송 예제

위에서 Slack Webhook url을 생성하였다면, 

본격적으로 hook 메시지를 슬랙 채널로 전송해보도록 하겠습니다.

 

물론, 위의 설정 페이지에 적힌 curl 명령어나 다른 언어를 통해서도 가능하지만,

파이썬을 통하여 슬랙앱을 구현하면 유용한 경우가 많으므로,

여기선 파이썬 코드 예시를 다루어보도록 하겠습니다.

 

일단, 예시 전송 코드 스니펫과 결과는 아래와 같습니다.

(requests 모듈 설치가 필요하면 !pip install requests로 진행해주세요.)

import requests

web_hook_url = "YOUR HOOK URL"

text = "안녕하세요! 오늘의 날씨는 '맑음'입니다."

payload = {"text" : text}

requests.post(web_hook_url, json=payload)

 

text 부분에 원하는 메시지를 적고,

json payload 형식으로 위와 같이 post를 해주면 완료됩니다.

 

만일, 메시지가 길어 접기 기능 등을 활용하고 싶다면,

아래 예시처럼 attachments로 주는 방법도 유용하게 사용 가능합니다.

import requests

web_hook_url = "YOUR HOOK URL"

text = """_예시 문장_: *Lorem Ipsum*

Lorem ipsum dolor sit amet, 
consectetur adipiscing elit, 
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. 
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."""

payload = {"attachments" : [{"text" : text}]} # 접기 기능 등 활성화

requests.post(web_hook_url, json=payload)

여기에서는 가장 윗줄 텍스트에 슬랙 내 텍스트 포맷팅 문법을 적용하여

_를 이용한 기울임체 *을 이용한 굵은 글씨도 같이 적용된 점도 확인할 수 있습니다.