일단은 슬랙 봇부터!

김수호·2024년 8월 21일

slack bot 제작기

목록 보기
2/2

일단 zappa로 서버리스보단 먼저 슬랫봇을 만들어보자!

1. 슬랙 봇 만들기

https://api.slack.com/apps/ 링크로 접속을 한다.

  1. ‘Create New App’을 클릭
  2. Create an app 팝업이 뜨면 ‘From scratch’ 선택
  3. App Name에 사용할 봇 이름을 설정
  4. Chatbot을 활용하려고 하는 Workspace를 선택
  5. Create App을 클릭하여 신규 Slack App을 생성

2. 세팅하기!

  • Setting>Basic information > App-level-Tokens에서 App Token을 생성합니다.
    connections:write를 추가합니다.

  • 생성된 토큰을 저장

-Featueres > OAuth & Permissions > Scopes > Bot Token Scopes에서 ‘chat:write’ 권한을 추가해 줍니다.

  • 추가한 Scopes를 Workspace에 적용시키려면 Install이 필요합니다.
    Features > OAuth & Permissions > OAuth Tokens에서 ‘Install to Workspace’ 버튼을 클릭, 권한을 허가 해줍니다.
    토큰도 여기서 확인하실 수 있습니다.

  • Slack에서 보내는 메시지를 신규로 만든 Slack App이 실시간으로 체크해서 반응 할 수 있도록 구성하기 위해서는 여러 방법이 있지만 이 가이드에서는 SocketMode를 사용합니다.
    Settings > Socket Mode > Connect using Socket Mode 에서 Enable Socket Mode 버튼을 활성화 합니다.

3. Python에서 slack Chatbot 작성

  • python에서 slack_bolt를 설치
pip install slack_bolt
  • pip list 명령어를 통해서 설치 확인
pip list 

  • app.py 코드 작성
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler

app = App(token="xoxb로 시작하는 token")


if __name__ == "__main__":
    SocketModeHandler(
        app,
        "xapp-token",
    ).start()
  • 실행
python app.py 

저의 경우 python3로 실행을 하면 오류가 발생하므로 python으로 실행을 했지만
python3로 설정되신 분들은 python3로 하시길 바랍니다.

4. Slack Chatbot event 처리

slack에 대한 정보는 공식 문서를 참고해주세용.

  • Features > Event Subscriptions 에서 Enable Event를 활성화 합니다.

  • 아래 Subscribe to bot events 이벤트에서 이미지와 같이 설정해주시고 Save Change를 클릭합니다.

  • Basic Information > Install app > OAuth Tokens에서 Reinstall to {Workspace}를 클릭한다.

  • Slack에서 워크스페이스에 앱 추가를 통해서 봇을 추가한다.

  • python에 이벤트 처리를 위한 코드 추가

@app.message("hello")
def message_hello(message, say):
    say(f"Hey there <@{message['user']}>!")
  • 앱 실행
python app.py 

  • Slack에서 테스트를 위해서 hello 전송

완료!

자세한 내용은 slack 공식문서와 차예진 선생님의 글을 참고하시면 좋을 것 같다!

출처 :

profile
정답을 모르지만 답을 찾는 법을 알고, 그 답을 찾아낼 것이다. 그럼 괜찮지 않은가? -크리스 가드너-

0개의 댓글