슬랙봇 웹훅 URL, 메시지 보내기 파이썬 코드

슬랙봇 웹훅 URL, 메시지 보내기 파이썬 코드

지난 포스팅에서 슬랙봇(슬랙 알림봇)을 만들기 위해 워크스페이스와 슬랙 앱(Slack App)을 만드는 방법까지 실습하였습니다. 슬랙 앱이 바로 슬랙봇입니다. 이번 포스팅에서는 파이썬 코드로 메시지를 보내기 위한 웹훅 URL 설정 방법과 파이썬 코드에 대해 알아보겠습니다.


글의 순서

슬랙 앱 추가설정 : 웹훅 URL (Web Hook URL)
슬랙 토큰과 웹훅 URL을 안전하게 보관하는 방법
슬랙봇 파이썬 코드 : 슬랙 채널에 메시지 보내기


슬랙 앱 추가설정 : 웹훅 URL (Web Hook URL)

웹훅 URL은 requests 패키지를 써서 메시지를 보낼 때 필요합니다. 파이썬에서 HTTP 통신이 필요할 때 requests라는 패키지를 주로 사용하는데, 서버가 제공하는 API에 접속할 때 특히 유용합니다. requests 패키지에는 get, post, put, delete 등의 모듈을 사용할 수 있습니다. 메시지를 보낼 때는 이 중 post 모듈을 사용합니다. requests.post 함수를 사용하기 위해서는 URL 주소를 인자로 입력해야 하는데, 이때 슬랙 웹훅 URL을 사용합니다.

웹훅 URL을 만드는 슬랙앱의 추가 설정을 위해 https://api.slack.com에 접속합니다.

step1)
오른쪽 맨 위에 있는 ‘Your apps’를 클릭하고 지난 포스팅에서 만든 App인 Coin_Notice_Bot 선택

step2)
왼쪽 ‘Settings’의 ‘Basic Information’ 클릭

step3)
Basic Information 두 번째 항목인 ‘Add features and functionality’에서 ‘Incoming Webhooks’ 선택

step4)
Incoming Webhooks의 첫 번째 항목인 ‘Activate Incoming Webhooks’ 버튼 활성화 → 이 부분이 슬랙 워크스페이스에 들어있는 대화 채널에 메시지를 보내기 위한 설정입니다.

step5)
Incoming Webhooks의 두 번째 항목인 ‘Webhook URLs for Your Workspace’의 맨 아래에서 ‘Add New Webhook to Workspace’ 버튼 클릭

step6)
슬랙앱(슬랙봇 = Coin_Notice_Bot)은 어디에 게시해야 합니까? 라는 창이 뜨는데, 슬랙봇이 메시지를 보낼 채널을 선택하고 ‘허용’ 버튼 클릭

step7)
Webhook URL이 생성된 것을 확인하고, Copy 버튼을 눌러 웹훅 URL 복사



슬랙 토큰과 웹훅 URL을 안전하게 보관하는 방법

함께 참고하면 좋은 글에 바이낸스 API 보안을 유지할 수 있는 키 관리 방법에 대한 포스팅을 링크하였습니다. 슬랙 토큰이나 웹훅 URL도 안전하게 보관해야 합니다. 안전하게 보관하기 위해 윈도우와 리눅스 시스템의 환경 변수로 저장하는 방법을 간단히 요약해 보겠습니다.

(1) 윈도우 환경 변수 설정 방법

환경 변수를 설정하는 경로는 다양한데요. 가장 간단한 방법부터 3가지 정도의 방법을 정리하면 다음과 같습니다.

▶ 윈도우 화면 맨 아래에 있는 작업표시줄 검색 창에서 ‘환경 변수’ 입력 후 엔터. 이때 중요한 것은 ‘환경 변수’처럼 환경과 변수 사이를 한 칸 띄워야 한다는 것입니다.
▶ 설정 → 시스템 → 정보 → 고급시스템 설정 → 환경 변수
▶ 윈도우 탐색기 : 내 PC → 마우스 오른쪽 클릭 → 속성 → 고급 시스템 설정 → 고급 탭 → 환경 변수

이 경로로 들어가면 ‘사용자 변수’ 또는 ‘시스템 변수’에 원하는 환경변수를 추가할 수 있습니다. 이 중 ‘시스템 변수’는 이 컴퓨터를 사용하는 모든 사용자가 사용할 수 있는 환경 변수입니다.

(2) 리눅스 환경 변수 설정 방법

리눅스 시스템에서는 홈 디렉토리 밑에 있는 .bashrc 파일에 환경 변수를 추가해줘야 합니다. 이렇게 하면 이 시스템을 사용하는 모든 사용자가 이 변수를 사용할 수 있습니다. .bashrc 파일 편집을 위해서 vi 에디터를 사용하는데, 리눅스의 vim 에디터도 vi 에디터와 같은 종류입니다.

▶vim ~/.bashrc
으로 .bashrc 파일을 엽니다. 파일 안에 slack_Token, slack_WebHook_URL이라는 변수를 아래의 방법처럼 export를 사용하여 추가합니다.
export slack_Token=xoxb-613…
export slack_WebHook_URL=https://hooks.slack.com/services/…

▶source ~/.bashrc
~/.bashrc 파일에 원하는 환경 변수를 추가한 후, 이를 바로 사용하려면 source 명령어를 써서 수정 내용을 적용시켜 줘야 합니다. 아니면 로그아웃 후에 다시 로그인 해야 합니다.


슬랙봇 파이썬 코드 : 슬랙 채널에 메시지 보내기

파이썬으로 슬랙 메시지를 보낼 때, 슬랙에서 공식적으로 지원하는 파이썬 패키지 slack_sdk를 이용할 수도 있습니다. 그러나 특정 채널에 메시지를 보내는 용도로만 사용한다면 파이썬 패키지를 추가로 설치하는 대신 requests 패키지를 이용하는 것도 좋은 방법입니다.

아래 코드는 requests.post 함수를 써서 슬랙봇이 대화채널에 메시지를 보내는 코드입니다. requests.post 함수에 대한 기본 틀을 익히는데 도움이 되길 바랍니다.


마치며 …

이번 포스팅에서는 파이썬 requests 패키지로 슬랙봇이 메시지를 보내는 방법을 알아보았습니다. requests.post 함수로 메시지를 보내려면 URL 주소를 인자로 입력해야 합니다. 이를 위해 필요한 설정이 슬랙 웹훅 URL을 받아 두는 것입니다.

웹훅 URL을 코드에 드러내지 않고, 시스템 환경 변수로 저장해두면 안전하게 쓸 수 있습니다. 윈도우와 리눅스에서 환경 변수 설정하는 방법에 요약되어 있습니다. 마지막으로 requests.post를 사용해서 슬랙 채널에 메시지를 보내는 기본 틀도 유용하게 쓰여지길 바랍니다.

 

 

함께 참고하면 더 좋은 글 :
슬랙 알림봇 (slack bot) 만들기
바이낸스 API 보안을 위한 환경 변수 설정 : 윈도우 10
바이낸스 API 보안을 위한 리눅스 환경 변수 설정
디스코드 메신저로 만드는 알림 봇 : 웹훅URL/
디스코드 알림 봇 : 비트코인 실시간 가격 메신저
파이썬 프로그래밍 시작 (14) 패키지, 모듈
파이썬 프로그래밍 시작 (10) 자료구조(Data Structure) : 딕셔너리


참고자료

dev-nam(2022), [python] 슬랙 메시지 보내기

Leave a Comment