프로그래밍/Python

[Python] SlackBot 쉽게 만들기

Lou Park 2023. 12. 10. 22:10

오늘 소개할 것은 Slack Bolt다.

 

Slack Bolt 이전에는 슬랙봇을 만들기 위해 Redirect URL을 App에 정의 해주어야 했고, 그렇기 때문에 도메인도 필요하고 LocalHost에서 돌릴려면 ngrok 같은 서비스도 부가적으로 이용해야 했다. 웹 애플리케이션을 만들어야 했던건 덤이다 ㅎ...

 

하지만 이 모든것은 Bolt선에서 모두 정리된다!

두-둥

갓트

 

시작하기

  • 슬랙 앱 만들기
  • 봇 토큰 Scope 요청해서 토큰 발급받기

위 2가지 과정이 선행되어야 함은 기존과 변함없다.

하지만 Socket Mode를 켜줘야하는 추가 설정이 필요하다. Socket Mode는 우리의 봇이 HTTP 엔드포인트를 노출하지 않고도 작동할 수 있게 해준다. 설령 봇이 방화벽 뒤에있더라도 말이다.

 

  • Socket Mode를 활성화하기 위한 App 레벨 토큰 발급받기

 

https://www.twilio.com/blog/how-to-build-a-slackbot-in-socket-mode-with-python

 

설정은 이렇게 간단하게 끝이고, 남은건 구현이다.

slack_bolt를 설치하고 바로 시작할 수 있다.

pip install slack_bolt

 

import os
from slack_bolt.adapter.socket_mode import SocketModeHandler
from slack_bolt import App

app = App(
    token=os.environ.get("SLACK_BOT_TOKEN"),
    signing_secret=os.environ.get("SLACK_SIGNING_SECRET")
)

# @app.event("app_home_opened") etc.

if __name__ == "__main__":
	handler = SocketModeHandler(app, SLACK_APP_TOKEN)
    handler.start()

 

 

여느 웹 프레임워크를 구현하는 것과 비슷하게 구성되어있다.

그리고...끝이다! 이제 붙이고 싶은 기능을 문서를 보면서 구현하면된다. 

 

자세한 튜토리얼을 원한다면 이 포스팅이 좋다.

https://www.twilio.com/blog/how-to-build-a-slackbot-in-socket-mode-with-python