Completion over Perfection

파이썬 - 슬랙 api로 슬랙봇 만들기 <1편 환경세팅> 본문

파이썬 (Python)

파이썬 - 슬랙 api로 슬랙봇 만들기 <1편 환경세팅>

난차차 2020. 8. 17. 00:13
반응형

파이썬 Python - 슬랙 api로 슬랙봇 slackbot 만들기 <1편 환경세팅>

 

파이썬으로 슬랙봇을 한번 만들어볼게요.

 

만드는 목적은 여러가지가 있을 수 있는데,

개인적으로 홈iot쪽에 관심이 많아서

슬랙봇을 부르고 뭔가 명령어를 쳤을 때 거실 조명을 켜게 한다던지,

아니면 로봇청소기를 돌린다던지 하는 명령어를 실행할 용도로 만들어 보겠습니다.

 

예를들면 "@bot 청소시작" 이런식으로 슬랙봇에게 명령을 하면

자동으로 로봇청소기가 돌아가는 식으로요.

재밌겠군 ㅎㅎ

 

slackclient 라이브러리를 설치해보자

 

개인적으로 제가 굉장히 많이 헤맸던 부분입니다.

ㅈㄹ맞은 부분이 뭐냐하면

pip 설치할때의 패키지명과 파이썬에서 import할때의 패키지 명이 다른것입니다.

 

pip install 을 할때는 slackclient로 인스톨을 해야되고,

파이썬에서 import 해 올때는 slack으로 import를 해야됩니다.

import 할 때 계속 에러가 떠서 stack overflow에서 겨우 찾아냄..

 

아니 도대체 왜 설치할때의 패키지명이랑 import할때의 패키지명을 다르게 운영하냐고..

나한테 왜그러는거야 짜증나게.. 

 

패키지명은 slackclient

저 같은 경우는 이미 설치가 되어 있어서 satisfied로 나오네요.

어쨌든~!

설치 패키지명은 slackclient입니다.

그럼 설치도 다 했으니 한번 import를 시켜볼까요?

 

에러 에러!

바로 에러가 떠버렸죠?

왜 이런고 하니...

뭐 슬랙에서 운영하는 파이썬용 슬랙클라이언트 패키지명이 바뀌어서 import slack으로 해야한답니다.

그럼 한번 바로 해보겠습니다.

 

에러 안뜸

import slack으로 해보니 에러가 안뜨고 잘 가져옵니다.

거지같은 slackclient

 

슬랙 봇을 생성하자!

 

슬랙봇을 생성하려면 슬랙 홈페이지에 접속해야됩니다.

 

 

1. https://api.slack.com/apps 로 접속해 줍시다.

2. 접속 후 'Create New App' 을 눌러줍니다.

3. App Name과 Development Slack Workspace를 대충 입력해줍니다.

4. 앱을 생성합니다

 

create new app을 눌러 생성해주자

 

생성이 되면 아래와 같은 화면이 나올겁니다.

이 화면에서는 permission(권한)메뉴를 선택해줍시다.

 

 

앱의 권한을 세팅하자!

 

permission으로 들어가면

아래와 같이 봇의 업무범위(?)를 설정해 줄 수 있습니다.

 

저의 청소봇은 멘션을 당했을 때 응답을 할 것이므로

아래 두 가지 사항만 추가해줬습니다.

 

- app_mentions:read (청소봇을 직접 멘션했을 때 읽기 권한)

- chat:write (청소봇 이라는 이름으로 채팅방에 글 작성하기 권한)

 

 

혹시라도 나중에 추가적인 기능이 필요하다면

언제든지 다시 접속해서 수정할 수 있으니 

일단 저것만 해두고 진행하도록 합니다.

 

다음으로는 bot 부분으로 이동해서 세팅해주도록 합시다.

Bots메뉴로 이동합니다.

 

 

봇의 이름을 지어주자!

 

Bots 메뉴로 들어가자

들어가면 봇이름을 정할 수 있습니다.

대충 아무거나 정해줍시다.

 

edit 버튼을 누르고 들어가서
clean_bot으로 이름을 설정했다.

 

 

 

이제 봇을 채널에 설치해보자!

 

 

위와 같이 permission 과 bots 부분을 설정하고 나면

install app to workspace 버튼이 활성화 될겁니다.

활성화 시켜 줍시다.

 

install 버튼을 누르면 아래와 같이 봇이 어떤 업무를 실행할 지 보여줍니다.

최종 확인 후에 생성을 진행합시다.

 

이렇게 진행하면 봇이 생성완료되었습니다.

 

이제부터가 시작입니다.

그 다음부터는 겁나 복잡하거든요.

다음편에 다루도록 하겠습니다. 

 

2편 보러가기!

 

 

반응형
Comments