본문 바로가기

programming/python

[ python 활용하기 #2 ] 파이썬 슬랙 봇 만들기 1탄 (코딩 몰라도 가능)

[ python 활용하기 #2 ] 파이썬 슬랙 봇 만들기 1탄 (코딩 몰라도 가능)

 

안녕하세요. 심심한 코딩쟁이입니다.

 

오늘은 파이썬 활용하기 두 번째 시간으로 코딩 문외한도 쉽게 만들 수 있는

 

파이썬 슬랙 봇 만들기 시간을 가져보겠습니다.

 

slack-logo
슬랙 로고


슬랙(Slack)이란?

 

https://slack.com/intl/ko-kr/

 

 

Slack은 당신을 위한 Digital HQ입니다

Slack은 여러분의 팀과 소통할 새로운 방법입니다. 이메일보다 빠르고, 더 조직적이며, 훨씬 안전합니다.

slack.com

 

슬랙은 대기업, 동네 시장, 학생의 팀 프로젝트 등 다양한 곳에서 전세계적으로 사용되고 있다.

 

특히 직장인들에게 많이 익숙한 협업용 메신저다.

 

슬랙을 매일 사용하는 직장인들을 위해 한번 만들어두면 유용한 슬랙 봇을 만들어보도록 하겠습니다.


Slack 워크스페이스 생성

 

기존의 워크스페이스에서 봇을 사용하실 분들은 다음 단계부터 진행하시면 됩니다.

 

봇을 사용할 워크스페이스를 만듭니다.

 

make-workspace
워크스페이스 이름 설정

 

skip-invite
테스트 워크스페이스이기 때문에 초대는 건너뜀

 

do
어떤 일을 하는지

 

make-complete
워크스페이스 생성 완료


Slack  APP 생성

 

https://api.slack.com/apps

 

 

Slack API: Applications | Slack

Your Apps Don't see an app you're looking for? Sign in to another workspace.

api.slack.com

 

위 링크에 접속한 뒤 Create an App 을 클릭합니다.

 

create-app
앱 만들기 클릭

 

From scratch 를 선택합니다.

 

click-from-scratch
from scratch 클릭

 

앱 이름과 봇을 초대할 워크스페이스 선택 후 Create App 클릭

 

앱 이름은 추후에 변경 가능, 워크스페이스는 변경 불가능

 

app-config
앱 이름과 위치시킬 워크스페이스 선택

 

봇 기능을 추가해주기 위해 Bots 클릭

 

bots-click
봇 클릭

 

OAuth & Permissions 또는 Review Scopes to Add 를 클릭

 

Review-Scopes-to-Add
권한 부여를 위해 버튼 클릭

 

Scopes 를 찾은 다음 봇에게 권한을 부여하는데 우리가 만들 봇은 단순히 슬랙 메시지만 보내기 때문에

 

Add an OAuth Scope 를 클릭해 chat:write 라는 권한만을 부여해주면 된다.

 

add-oauth
채팅 쓰기 권한 부여

 

여기까지 잘 따라오셨다면 이제 봇을 워크스페이스에 초대할 차례입니다.

 

스크롤을 제일 위로 올리면 Install to Workspace 가 보이실 겁니다. 클릭해 주세요.

 

install-to-workspace
앱을 워크스페이스에 설치

 

반응형

 

허용

 

accept
권한 요청을 허용

 

토큰값을 복사해서 따로 저장해 둡니다.

 

copy-token
토큰 값을 따로 저장

 

위 과정을 마치고 슬랙으로 이동해보면 봇의 모습을 확인할 수 있습니다.

 

check-bot
워크스페이스에 봇 참가

 

봇이 활동할 채널을 우클릭하고 세부정보 보기 클릭

 

config-channel
채널 세부정보 보기

 

통합 탭에서 앱 추가 클릭

 

add-app
채널에 앱 추가

 

앞에서 만든 앱을 확인하고 추가 클릭

 

add-app
앞에서 만든 앱 추가

 

채널 정보에서 추가된 앱 확인

 

info-channel
채널 정보에서 앱 확인

 

여기까지가 봇을 사용하기 위해 필요한 슬랙에서의 설정이었습니다.


파이썬 Slack_SDK 라이브러리 설치 및 사용

 

pip 업그레이드를 우선 진행한 다음 Slack_SDK를 설치합니다.

 

pip install --upgrade pip

#윈도우 cmd에서는 아래 명령어로 진행
python -m pip install --upgrade pip

#slack_sdk 라이브러리 설치
pip install slack_sdk

 

아래 파이썬 코드로 봇이 메시지를 보내는 기능 확인합니다.

 

import slack_sdk

# 봇 토큰값 파일에서 읽어오기
# 보안을 위해 코드에 토큰값을 직접적으로 사용하지 않고 텍스트 파일에서 읽어 사용
file = open('bot_token.txt','r')
bot_token = file.readline()
file.close()

# 봇이 보낼 메시지 작성
bot = slack_sdk.WebClient(token = bot_token)
bot.chat_postMessage(
    channel = 'C04GHKF79TQ', # 봇이 활동하는 채널의 ID 값을 넣어주면 채널명이 변경되어도 문제 없음.
    text = 'Hi. :wave:\nMy name is test-bot.') # 보낼 메시지의 내용을 입력. 이모티콘 사용 가능.

 

채널 아이디 확인

 

channel-id
채널 아이디 확인

 

코드를 실행하면 봇이 메시지를 보내는 모습을 확인할 수 있다.

 

bot-say-hi
봇 메시지 확인


여기까지 파이썬 슬랙 봇 만들기 1탄이었습니다.

 

1탄에서 봇이 메시지를 보내는 기능을 만들어보았습니다.

 

2탄에서는 특정 정보가 담긴 메시지를 원하는 시간에 보내주는 알림 봇을 만들어보겠습니다.

 

일주일도 남지 않은 22년 마무리 잘하시길 바랍니다.

 

감사합니다.

반응형