[python] 파이썬으로 슬랙 메시지 보내기

업데이트:

파이썬으로 슬랙 메시지 보내기

이번 포스팅에서는 파이썬으로 슬랙 봇을 이용해 메시지를 보내는 방법을 알아보겠습니다.

1. 슬랙 가입하고 실행하기

위 그림은 슬랙에 가입해서 워크스페이스(workspace) 이름을 Crawler라고 정한 후 슬랙 프로그램 실행화면 입니다. 그리고 채널 추가를 통해 stock_alarm01 이라는 채널을 생성했습니다. 참고로 워크스페이스 이름과 채널이름은 원하는대로 정할 수 있습니다. 지금부터 할 일은 크롤링 관련 메시지를 보내주는 봇(bot)을 생성하는 것입니다. 우리가 생성한 봇은 Crawler 워크스페이스의 stock_alarm01 채널에 메시지를 보내줄 것입니다.

2. 봇 추가하기

크롬 브라우저를 열고 https://api.slack.com 에 접속합니다. 그리고 봇을 생성하기 위해 화면 상단의 Create a custom app을 클릭합니다. 이 때 app은 봇을 의미합니다. 화면 상에서는 앱이라고 표시되어 있지만 이번 단원에서는 혼동하지 않도록 ‘봇’이라고 부르겠습니다.

3. 여러 가지 설정

위 그림은 크롤러 봇을 생성하는 화면입니다. 봇 이름과 워크스페이스를 정해줍니다. 봇 이름은 본인이 원하는 데로 생성 가능하며, 워크스페이스는 처음에 슬랙 앱을 설치할 때 정한 워크스페이스로 정하거나 자신이 원하는 워크스페이스를 선택합니다.

왼쪽 세로 바에서 OAuth & Permission을 클릭하면 토큰을 확인할 수 있습니다. 위 그림에 강조된 토큰을 잘 보관하시기 바랍니다. 이 토큰은 파이썬을 이용해 봇으로 메시지를 보낼 때 필요합니다.

그리고 스크롤을 아래로 내리면 스코프(scopes)를 설정할 수 있는데 Bot Token Scopes 를 추가해줍니다. 우리가 원하는 기능은 글을 쓰는 기능이므로 ‘chat:write’를 추가해줍니다.

4. 슬랙 채널에 봇 초대하기

다시 슬랙 프로그램으로 돌아가 stock_alarm01 채널에 봇을 추가해줍니다. 채팅창에 골뱅이(@)를 입력하고 봇 이름을 입력하면 봇을 추가할 수 있습니다.

위 그림은 stock_alarm01 채널에 봇을 추가한 결과 입니다.

5. 파이썬으로 메시지 보내기

import requests

token = "xoxb-토큰"
channel = "#stock_alarm01"
text = "Check your stock crawler."

requests.post("https://slack.com/api/chat.postMessage",
    headers={"Authorization": "Bearer "+token},
    data={"channel": channel,"text": text})

주피터 노트북을 실행하고 파이썬 코드를 작성해 슬랙에 메시지를 보내보겠습니다. 먼저 requests함수를 불러오고, 토큰을 지정해줍니다. 그리고 메시지를 보낼 채널명을 정하고, 어떤 메시지를 보낼지 정합니다. 그리고 post 메소드를 이용해 슬랙에 메시지를 보냅니다. headers 부분에 사용된 Bearer는 인증 방법 중 하나입니다.

위 그림와 같이 메시지가 제대로 보내진 것을 확인할 수 있습니다.