본문 바로가기
Cording/Python_Basic

Python] 슬랙 Slack 메신저 봇 만들기 - 코드 포함 초간단 코딩

by €€£¥ 2022. 3. 6.

Slack Bot을 만들어야 하는 이유 썰!

궁금해서 만들어 보는 초간단 파이썬으로 슬랙 Slack에 메시지를 보내는 봇 Bot 만들어 보기!

예를 들어 주식 시세라든지 검색 순위라던지 혹은 날씨라던지 매일 검색한 정보를 받아 볼 수 있는 자동화 프로그램을 만들고 싶다면 일단 본인에게 메시지를 보내주는 봇 (Bot) 이 있어야 하지 않겠는가?

 

코딩 초보 코린이가 직접 공부해서 만든 슬랙 Slack bot을 이용한 메시지 보내기 1편!

슬랙 Slack 메시지 Message 봇 Bot 만들기! 가져다 붙이기만 하면 되는 초간단 코드 포함! 포스팅이다. 굳굳!

 

정말 코딩 초보 코린이인 본인 기준에서 누구나 따라 할 수 있게 만들었으니 잘 봐주시길~

슬랙 Slack 은 협업을 위한 메신저.. 이 설명부터 필요한 사람은 이 블로그에 안들어온다는 가정하에 바로 고고!

(본 포스팅은 2022년 3월 6일 기준 작동 확인하여 작성되었으니, 혹, 이후 업데이트 및 변경에 의해 작동이 되지 않을 수 있습니다! 본인이 업데이트를 하면 다행이지만, 업데이트가 없다면.... 화이팅! ㅋㅋㅋ)

 

 

I. 슬랙 Slack APP 만들고 설정하기

먼저 슬랙 봇으로 부터 메시지를 받기 위한 슬랙 메신저 내 '워크스페이스'와 '채널' 개설 그리고 메시지를 보내줄 '슬랙 앱'을 만들고 설정해보자.

 

1. 슬랙 워크스페이스 Slack Workspace 개설하기 

슬랙 메신저나 홈페이지에서 슬랙 워크스페이스를 새로 만들어 보자.

워크스페이스를 새로 만드는 메뉴는 슬랙 메신저 메뉴나 홈페이지 메뉴에서 찾아 들어가면 된다.

이 건 너무 쉬우니까 굳이 그림은 생략!

 

 

 

 

링크0. 슬랙 홈페이지 링크

 

Slack은 미래의 업무가 이루어지는 곳입니다

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

slack.com

 

a. 새로운 워크스페이스를 만들기 위해 본인이 사용하는 메일 주소를 입력!

메일 인증을 받아야 하니 꼭 본인이 사용하는 메일 주소를 사용하자~

굳이 회사 메일을 사용할 필요도 없고 개인 메일 주소면 굳!

 

b. 사용할 워크스페이스 이름을 설정한다!

당연히 진짜 회사나 팀 이름을 필요는 없다. 

본인은 그냥 정보 전달용 봇을 만들 생각이기 때문에 "INFO_BOT"이라고 임의로 이름을 넣었다.

굳이 안따라해도 된다. 자기 마음대로 설정해도 되는 거다. 여러 채팅방을 갖는 큰 카테고리 쯤으로 생각하면 된다.

 

c. 사용할 채널명을 설정한다.

음~ 간단히 말해 채팅방 이름을 설정해준다 생각하면 된다. 

본인은 여기서 실수를 했다. 채널명은 띄어쓰기와 대문자가 적용이 안되는 것 같으니 걍 소문자 단어로 간단히 기입하는게 나았다.

본인은 "MSG From_Bot" 이라 입력했지만, 다시 하라고 하면 "message_bot" 정도로 했을 거 같다.

d. 대화상대 혹은 친구를 채널에 추가 하기

지금은 일단 테스트로 나랑 슬랙 봇 만 사용할 거니까 '이 단계 건너뛰기'로 진행하자.

필요하면 나중에 얼마든지 친구나 대화상대를 추가할 수 있다. 

 

 

e. 슬랙 메신저에서 추가 된 워크스페이스와 채널 확인하기

위 단계까지 진행하고 나면 슬랙 메신저에서 자기가 추가한 워크스페이스와 채널을 확인할 수 있다. 

 

 

2. 슬랙 앱 Slack APP 만들기

이제 자기가 개설한 채널에 메시지를 보내줄 슬랙 앱 (Slack APP)을 만들어 보자.

Slack API를 사용해야 하기 때문에 하기 링크로 Slack API 홈페이지로 이동하자.

 

링크1. 슬랙 Sack API 홈페이지

 

Slack은 미래의 업무가 이루어지는 곳입니다

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

slack.com

 

a. 슬랙 앱 Slack APP 생성하기

외쿡 사이트라 영어로 되어 있지만 매우 간단하니 긴장하지 말자.

잘 모르겠으면 밑의 내용대로 따라오기만 하면된다. 걱정말자~

첫 홈페이지 화면에서 'Create an app" 버튼을 클릭해서 본격적으로 Slack APP 만들기를 시작하자.

물론, 로그인은 되어 있어야 한다. 아마 위으 워크스페이스와 채널 개설 단계를 진행했다면 로그인이 되어 있을 것이다.

 

b. 슬랙 앱을 만드는 방법에 대한 팝업이 뜬다. 

두가지가 있지만 크게 의미는 없는 거 같다. 

아직 자기들도 잘 모르는 베타보단 지금까지 잘 사용된 'From scratch' 메뉴를 선택하자.

 

c. 새로 만들 Slack APP 이름과 그 Slack APP이 활동할 워크플레이스를 선택하자.

App Name 부분에는 자기가 임의로 Slack APP의 이름을 설정해주면 된다.

본인은 'MSG_Bot' 이라고 설정했다. Massege를 줄여서 MSG라고 썼는데 뭔가 음식을 만들거 같은 이름이 되었다.

다시 하라고 하면 '섹시_베이비'로 해야 겠다.

'Pick a wrokspace to develop your app in' 부분에는 위에서 자기가 만든 워크 플레이스를 선택해주면 된다. 

본인은 "INFO_BOT"이라 만들었기 때문에 그대로 선택 했다. 

그리고 "Create App"을 클릭!

 

3. Slack APP 설정하기

일단 Slack App을 만들기까지 했다면 여기서 부터는 Slack App의 속성과 권한을 설정해줘야 한다. 

이후에는 자기가 필요한 용도에 따라 속성과 권한을 추가해서 설정하면 되지만,

이 포스트에서는 순전히! 단순히! 메시지를 보내는 기능만 가진 메시지 봇을 만드는 것이 목표이기 때문에 메시지 발송 부분의 속성만 설정하였다. 

어렵진 않지만 틀리면 동작이 안되니까 잘 따라와주길!

 

a. 자기가 만든 Slack App이 크게 뭘 할 건지 선택해준다. 

위의 'Create App' 버튼을 클릭하고 나면 밑의 화면으로 이동된다. 

대충 자기가 만든 Slack App'의 주된 역할을 설정해주는 듯 하다. 

메시지 봇.. 이니까 'Bots'를 선택하는 단순명료함을 추구해보았다! ㅋㅋㅋ

 

b. Slack App의 권한을 설정해 준다.

위의 'Bots' 메뉴를 선택하면 App Home 화면으로 이동한다.

여기서 자기가 만든 Slack App의 권한 범위를 설정하고 토큰 Token 을 생성해줘야 한다. 

어렵게 생각하지 말고 일단 진행해보자. 

긍정의 초록색 버튼 'Reveiw Scopes to Add'를 클릭한다.

 

c. Slack App의 권한 설정하기

본인 'Token' 이라는 걸 자세히 설명해줄 수 없을 만큼 본인은 코딩 초보이다. 미안하다..

대강 자기 Slack App의 고유 아이디 정도로 이해해도 무리는 없을 것 같다. 

여튼, Bot Token Scopes 메뉴에서 자기 Slack App이 활동 할 수 있는 권한을 설정해줘야 한다. 

지금은 만들어져만 있지 아무 짝에도 쓸모 없는 권한이 없는 노비 같은 것이니, 뭐라도 감투를 씌워주자.

아니.. 메시지를 보낼 수 있는 권한을 주자.

'Add an OAuth Scope' 메뉴를 클릭한다.

 

본 화면은 위의 'Review Scope to Add' 버튼을 누른 뒤 화면인 'OAuth & Permissions' 메뉴에서 약간 스크롤을 내린 부분에 있다. 그 정도는 스스로 찾아보자 ㅋ

 

순전히 메시지를 보내는 용도로 사용할 메시지 봇으로 만들거기 때문에 다른 권한은 주지 않는다.

승진을 원하면 그에 걸맞는 성과를 내야 하는 법이다. 

'chat:write' 만 선택해주자. 설명에도 메시지를 보낸다 라고 써있다.

 

 

d.  Slack App을 워크스페이스에 설치하기

위의 'chat:write'을 자기 Slack App에 부여하는 부분까지 완료했다면 다시 'OAuth & Permissions' 페이지 첫 부분으로 스크로를 올려보자. 

'Install to Workspace' 라는 버튼이 있다. 

이제 권한까지 부여받은 자기 Slack App을 생성한 워크스페이스에 설치해서 대기 시키는 거다.

클릭! 클릭! 클릭!

 

위 'Install to Workspace' 버튼을 클릭하면 아래 화면으로 이동된다. 

확인 절차 같은 거니 '허용'을 눌러주자. 

 

 

e. Slack App Bot Token 의 생성!

위 과정까지 완료하면 내 Slack App의 통행증 같은 Token 토큰이 발행된다. 

'Bot User OAuth Token' 칸에 나타나는 'xox~~' 로 시작하는 토큰 Token을 확인해두자. 

이따 다시 이 'OAuth & Permissions' 메뉴로 찾아들어와서 확인해도 된다. 

코딩할 때 반드시 필요하니 어디서 확인하는지는 꼭 기억해 두자.

 

4. Slack App 채널에 초대하기

이제 자기가 만든 워크스페이스 내 채널에 메시지를 보낼 수 있는 Slack App이 메시지를 보낼 채널에 초대해 보자.

초대 받지 않은 사람과 App은 메시지를 보낼 수 없다. 

메신저에서 App을 초대하지 않고 App에 권한을 줘서 자기가 알아서 들어오게 하는 방법도 있는 거 같은데

본인 같은 코린이에겐 이 방법이 훨씬 빠르고 간단한 거 같아서 이 방법을 진행하겠다.

 

a. Slack App을 초대할 채널에서 오른쪽 클릭을 하면 '채널 세부정보 열기' 메뉴로 들어가자.

굳이 이렇게 말고 다른 메뉴도 있지만 그건 자기가 걍 찾아서 편한대로 사용하자.

중요한 내용은 아니다.

 

b.  '앱 추가'  버튼으로 내가 만든 Slack App을 불러오자.

'통합' 탭으로 이동해서 '앱'의 '앱 추가' 버튼을 클릭하자.

사람을 초대하는게 아니라 '앱 App'을 불러오는 거니까 '앱 추가' 인거다 ㅋㅋㅋ

 

c. 목록에서 자기가 생성한 Slack App을 선택한다.

추가할 앱 목록 중에 자기가 생성한 Slack App를 '추가' 해준다.

본인은 맛있는 'MSG_Bot' 이 본인이 성성한 Slack App의 이름이다. 

본인이 만든 App 말고도 다른 여러가지 편리해 보이는 App들이 있지만 필요 없으니 걍 그런갑다 하고 지나가자.




d. 채널 채팅창에서 Slack App 이 초대 된 것을 확인!

'앱 추가'를 하면 밑의 화면처러 자기가 만든 Slack App이 해당 채널에 참여한 것을 확인 할 수 있다.

 

이걸로 내게 메시지를 보내줄 Slack App을 생성하고 설정하고 채널에 초대해서 준비시키는 단계까지 완료되었다!

이제 Python을 이용해서 메시지를 보내는 코딩을 시작해보자~

 

 

 

 

 

 

II. Slack App 메신저 봇 코딩하기 with Pyhon 

대망의 파이썬을 사용한 슬랙 메신저 봇 코딩하기 파트이다. 

코린이지만 본인이 만든 초간단 코드도 포스팅해두었으니 유용하게 참고해주길 바란다. 

코린이 화이팅! ㅋㅋㅋㅋ

1. Slack_SDK 라이브러리 설치하기!

Slack App을 Python으로 구동시키기 위한 라이브러리가 필요하다. 

2022년 3월 6일 현 시점에서는 'Slack_SDK' 라이브러리가 가장 유용한 것 같은 구글 검색 결과라서  'Slack_SDK' 를 설치하였다. 

 

'Slack_SDK' 라이브러리에 대한 상세한 설명은 하기의 라이브러리 홈페이지 링크를 통해 확인 바란다~

다시 한 번 말하지만 본인은 코린이다.;;

 

링크2. 파이썬 슬랙클라이언트 라이브러리 Python Slack Client Library

 

GitHub - slackapi/python-slack-sdk: Slack Developer Kit for Python

Slack Developer Kit for Python. Contribute to slackapi/python-slack-sdk development by creating an account on GitHub.

github.com

 

a. Slack_SDK 라이브러리 인스톨하기

터미널에서 하기 화면의 코드를 입력 혹은 밑의 코드를 복사 붙여넣기 하자.

터미널을 어떻게 실행시키는지 모르면... 윈도우의 경에 윈도우 버튼 옆의 돋보기에 'cmd'라고 입력하거나

자기가 사용하는 IDE에서 터미널로 들어가자.

pip install slack_sdk

설치되거나 이미 설처되어 있다면 이미 설치되어 있다는 메시지가 뜰 것이다. 

 

 

2. Slack App  메시지 봇 코딩하기 - 초간단!

이제 Slack App 메시지 봇의 코딩을 시작해보자. 

본인의 코린이 레벨에서 작성한 코드이니 참고!!!

a. 초간단 슬랙 메시지 봇 3줄 코딩

초간단 메시지 보내기 코드이다. 

1. 에는 위에서 발행된 'Bot User OAuth Token' 을 입력한다. 

2. 에는 메시지를 보낼 위에서 Slack App을 초대한 채널명을 입력한다. 

3. 에는 테스트로 보내볼 메시지 내용을 입력한다.

 

 

b. 테스트 메시지 결과 확인

위의 테스트 메시지 코드를 실행한 결과이다.

우오! 신기하다. 내가 만든 코드가 작동하다니!

"Hello World!!"가 분명하게 메시지로 떴다~~

직접 타이핑 하기 귀찮은 사람은 밑의 코드를 복사해서 사용하시면 되겠다.

import slack_sdk

slack_token = 'Your APP Token Here!!' #Bot User OAuth Token을 입력합니다. 

client = slack_sdk.WebClient(token=slack_token)

client.chat_postMessage(channel='#msgfrombot',
                        text='Hello World!!') #channel : Bot을 초대한 채널명 / text : 보낼 내용

 

 

c. 메시지 봇을 함수로 설정한 코드 만들기

이후에 무언가 자동을 메시지를 보내게 하기 위해서 메시지 봇을 파이썬 함수로 설정해보았다.

역시 본인의 코린이 레벨에서 만든 코드라는 점은 참고해주시길!

 

d. Slack App 메시지 봇 함수 코드 테스트 결과

역시 작동한다! 우오~ 신기하다.

역시 타이핑이 귀찮은 사람은 허접하지만 하기 코드를 복사해서 그대로 사용해도 좋다~

import slack_sdk

SLACK_TOKEN = 'xoxb-********'  #본인의 Slack Bot Token 입력
SLACK_CHANNEL = 'Your_channel_name' #메시지를 보낼 Channel명 입력


def Msg_bot(slack_messege):  #slack bot massage
    slack_token = SLACK_TOKEN   #slack bot token
    channel = SLACK_CHANNEL     #chnnel for sending massege from slack bot
    message = slack_messege     #message from slack bot
    client = slack_sdk.WebClient(token=slack_token)
    client.chat_postMessage(channel=channel, text=message)


chat = "TESTING MESSAGE FROM SLACK_BOT!!" # 보낼 메시지 입력

Msg_bot(chat)

 

이상 이렇게  Python 을 이용한 Slack App 메신저 봇 만들기를 해보았다.

실행이 안되거나 오류가 발생하는 경우에는 공유해주시면 참고만 하겠다.

본인도 코린이라 오류에 대해서는 구글링을 통해 찾아보거나 포기하는 법 밖에 모른다. ㅋㅋㅋ

 

그럼 오늘도 코린이 화이팅!

 

 

 

댓글