본문 바로가기
컴퓨터/Python

파이썬으로 슬랙 (Slack) 채팅 봇 만들기

by 날아라키위새 2021. 6. 22.
반응형

회사에서 Slack을 사용하다 보니 편해져서 개인적인 용도로도 사용하기 시작했다.

그러던 중 슬랙 채널에 주식 정보를 30분 마다 자동으로 알려주는 챗 봇을 만들고 싶었다.

생각보다 간단하다.

Python으로 Slack 채팅 봇 만드는 방법

1. 먼저 https://api.slack.com/ 으로 접속하여 Create a custom app 버튼을 눌러준다.

2. App Name에는 챗 봇 이름을

그리고 아래칸에는 봇을 만들 workspace를 골라준다.

3. 좌측 메뉴에서 OAuth&Permissions에 들어가서 Scopes에 Calls:Write를 선택해준다.

추후 다른 기능을 추가하고 싶다면 Scopes에 다른 부분도 선택하여 사용하면 된다.

4. 그리고 나면 Install to Workspace 버튼이 활성화된다.

버튼을 누르고 진행하면 Bot User OAuth Token 이 생성되고 토큰을 복사해놓는다.

5. 그리고 아래의 파이썬 코드에서 myToken 부분을 위에서 복사한 token으로 수정하고 #채널이름 부분에 봇이 상주할 채널을 입력하고 아래의 코드를 실행하면 대충 끝!

import requests
from datetime import datetime


# slack 챗 봇
def post_message(token, channel, text):
    response = requests.post("https://slack.com/api/chat.postMessage",
                             headers={"Authorization": "Bearer " + token},
                             data={"channel": channel, "text": text})
    print(response)


# slack 토큰
myToken = "xoxb-123456789011-123456789-ABCDEFGHIJKLMNOP"


# message로 받은 인자를 파이썬 쉘과 슬랙 #채널이름 에 동시에 출력한다
def dbgout(message):
    print(datetime.now().strftime('[%m/%d %H:%M:%S]'), message)
    strbuf = datetime.now().strftime('[%m/%d %H:%M:%S] ') + message
    post_message(myToken, "#채널이름", strbuf)

이제 dbgout이라는 함수를 이용하면 message로 받은 부분을 챗봇이 슬랙 채널에 출력해준다. 30분마다 정해놓은 주식의 현재가를 알려주거나 원하는 조건을 정해놓고 조건을 달성하면 챗봇이 알려주는 등 여러 가지로 활용 가능하다. 

 

관련 글:

파이썬으로 주식 현재가 알려주는 슬랙 (slack) 챗 봇 만들기

 

반응형

댓글