Slack Bot 만들기

category 카테고리 없음 2023. 3. 31. 08:51
728x90
반응형

전체 소스

샘플 소스는 아래 링크에 올려놓았으니 샘플 이용해서 구축하면 된다.

 

GitHub - yscho03/sample_slack_app

Contribute to yscho03/sample_slack_app development by creating an account on GitHub.

github.com

 

Slack Bot 생성

1. api.slack 접속

Step1: https://api.slack.com/ 에 접속

Step2: “Your apps”을 클릭

 

2. APP 생성

Step1: "Create New APP" 을 클릭

Step2: From scratch을 선택

 

Step3:  "APP Name" 을 설정하고 "workspace"를 <workspace>를 선택

 

3. Bot 생성

Bot은 APP의 하위 단계의 유닛으로 생각하면 된다.

즉, Bot은 App의 일부분으로, App이 Bot을 포함하고 있습니다.
App은 더 많은 기능을 제공하기 위해 Bot을 사용할 수 있으며, Bot은 App에서 사용되는 작은 기능을 담당할 수 있습니다.
예를 들어, App은 파일 공유, 프로젝트 관리, 팀 업무 관리 등의 기능을 제공할 수 있고, Bot은 메시지 자동응답, 일정 확인, 알림 전송 등의 작은 기능을 처리할 수 있습니다.

 

Step1:  메뉴에서 "APP Home" 을 클릭하고 아래 보이는 "Edit" 버튼을 클릭

 

Step2:  "Display Name" 과 "Default username" 을 설정

 

Step3:  "Message Tab"을 활성화하고 체크 박스를 클릭

앱에서 사용자와 직접 대화할 수 있도록 설정하는 기능이다.

 

4. Scope 권한 설정

Step1:  "OAuth & Permissions" 메뉴를 클릭

 

 

Step2:  아래와 같이 Scope 권한을 추가

 

5. App-Level 토큰 생성

Socket 통신을 하기 위하여 App-Level 토큰을 생성해야한다.

 

Step1:  "Basic Information" 메뉴를 클릭

 

Step2:  "Generate Token and Scope" 를 클릭

 

Step3:  아래와 같이 Scope 권한을 추가하여주고 "Generate" 를 클릭

 

6. Socket Mode 켜기

양방향 통신을 하기 위하여 Socke Mode을 활성화 해야한다.

 

Step1:  "Socket Mode" 메뉴를 클릭

 

7. Event 설정

Step1:  "Event Subscriptions" 메뉴를 클릭

Step2:  "Enable Events"  활성화

Step3:  아래와 같이 Event을 추가

 

8. APP 승인 요청 

자 이제 설정이 다 완료되었다. 이제 해당 workspace에 앱을 설치하기 위하여 관리자에게 승인을 받아야 한다.

 

Step1:  "Basic Information" 메뉴를 클릭

Step2:  "Request to install" 버튼을 클릭

 

9. APP 설치

앱 승인이 완료되었으면 해당  workspace에 설치해야한다.

 

Step1:  "Basic Information" 메뉴를 클릭

Step2:  "Install to Workspace" 버튼을 클릭

 

 

Python 코드

1. 토큰 준비

3가지 토큰이 필요하다.  SLACK_SIGNING_SECRET, SLACK_BOT_TOKEN, SLACK_APP_TOKEN

SLACK_SIGNING_SECRET

메뉴 "Basic Information" > App Credentials > Sigining Secret

SLACK_BOT_TOKEN

메뉴 "Basic Information" > APP Level Tokens > Tokens

 

SLACK_APP_TOKEN

메뉴 "Basic Information" > OAuth & Permissions > OAuth Tokens for Your Workspace

2. 패키지 설치

$ pip install slack_bolt

3. 예제 소스

from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler
 
# 토큰 설정
SLACK_SIGNING_SECRET = "<YOUR_SLACK_SIGNING_SECRET>"
SLACK_BOT_TOKEN = "<YOUR_SLACK_BOT_TOKEN>"
SLACK_APP_TOKEN = "<YOUR_SLACK_APP_TOKEN>"
 
app = App(
    token=SLACK_BOT_TOKEN,
    signing_secret=SLACK_SIGNING_SECRET
)
 
# 각종 이벤트를 annotation 안에 설정하면 된다.
@app.event("message")
@app.event("app_mention")
def message_handler(message, say):   
    say(f"Hello <@{message['user']}>")
 
if __name__ == "__main__":
    # ※ 주의 : APP 토큰이다.
    SocketModeHandler(app, SLACK_APP_TOKEN).start()

 

Slack Bot 실행

Slack Bot에게 mention이 날리던 채널창에 초대를 하건 대화를 해보자.

다음처럼 대답이 잘 오는 것을 확인할 수 있다.

 

728x90
반응형