본문 바로가기
개발/잡동사니

Slack 에 운세봇 만들기 - 1

by svcbn 2026. 1. 14.

갑자기 저번주였나... 저저번주였나
동료분이 오늘의 운세 봐주는 봇을 만들면 어떠냐는 말을 해서, 갑자기 너무 재밌어 보였다.

그래서 내가 해도 되겠냐고 했더니ㅋㅋㅋㅋㅋ 아이디어 뺏어가냐면서ㅋㅋㅋㅋ
일주일 기다렸다가 안하면 하겠다고 했더니 그러라고하심ㅋㅋㅋ

그래서 갑자기 시작된 슬랙봇 만들기


먼저 Slack API 에서, Your Apps 로 가야 한다. 워크스페이스에 로그인을 하고 나면, 앱을 생성할 수 있는 창이 나오는데...

manifest 와 scratch 방식이 있는데, 매니페스트는 앱 설정을 YAML/JSON 으로 관리하는 방식이고, 스크래치는 관리 콘솔 UI 에서 그냥 선택하는 방식이다. 일단은 뭘 잘 모르니 스크래치로 시작.

앱의 이름과, 사용할 워크스페이스를 지정하고 생성해준다.

그러면 이런 앱 관리 창이 나오는데, 이제부터가 시작이다. 언제든지 App Manifest 탭에서, 관리 방식을 변경할 수 있으니 부담없이 스타트. 일단 기능의 갯수부터 심상치 않다.

먼저 할 것은, 앱의 채널 내 채팅 권한을 주고 싶은데..
옆의 탭에서 OAuth & Permissions 를 눌러준다.

중간쯤에 Scopes 가 있는데, 앱의 기능과 권한을 지정하는 곳. 우리는 간단한 운세 봇이라, 사용자의 권한을 대행하지 않아도 괜찮으니, 봇 토큰 권한만 지정해보자.
Add an OAuth Scope 를 눌러준다.

이런 저런 권한들이 많은데, 내가 구상하고 있는 것은,
지정된 채널에 메세지 권한 chat:write
미참여 채널에 메세지 권한 chat:write.public
dm 시작 가능 권한 im:write
채널 내 리스트에 개인정보 기입되었다고 가정. 읽어오기 권한 lists:read
워크스페이스 내 사람 조회 권한 users:read

이정도를 사용하려고 한다. 간단간단

다음으로는 App Home 탭으로 가서, bot 인 앱이므로 봇 프로필을 만들어줘야 한다. 수정 가능하니 일단 대충 생성.
그러면, 아까 OAuth & Permissions 에 install 을 활성화 할 수 있는데,

액세스 권한을 확인하고 허용을 해 주면, 이제 비로소 앱이 워크스페이스에 추가된다! 일단 이게 되어야 하는 것이 중요한게, 이때부터 Bot User OAuth Token 이 생성되기 때문에...
지금부터는 권한을 수정할 경우 매번 Reinstall 을 눌러서 재설치 해 줘야 적용이 된다.


권한설정이 끝났다면, 다음은 이제 코드가 굴러갈 곳을 만들어야 하는데..
이거 하나 하자고 막 서버 만들고 그러고 싶지는 않고, 그냥 다 주어진 정보에, 운세 api 만 엮을거니까..? GitHub Actions 로 실행만 시켜보자.

GitHub 에 레포를 하나 private 로 만든다.
private 인 이유는.. 혹시 뭐 토큰값같은거 들어갈까봐..? 일단 해보고 괜찮아보이면 공개해야지

짜잔 레포 생성.

다음은 Settings 에서, Secrets and variable 탭으로 들어간다. GitHub Actions 워크플로우에서 사용할, 받아올 변수를 넣어놓을 곳. Actions 를 열어 사용할 변수를 추가해준다. 그러려면 먼저 무슨 변수들을 사용할지 알아야 하는데, 생성한 채널에서 받아올 변수들을 구성해줬다.

운세에 필요한 정보들인, 생년월일(귀찮아서 양력만 지원 예정), 성별, 출생시간(모름 가능), 현재 구상으로는 공개면 채널에 메세지로 같이 공개되고, 비공개 체크를 하면 DM으로 받아볼 수 있게 만들고... 마지막으로 본인확인을 위한 유저태그

그리고, 이렇게 시크릿을 만들어준다. 그럼 이제 기반 준비는 끝났는데, 목표로 하는 네이버 운세 API 가 따로 제공되지 않는 것 같아서.. 크롤링을 해야하나.. 정책같은거 있을까봐 좀 고민되긴 하는데..

아무튼 시간이 너무 늦어버려서 나머지는 다음에 이어서 작업하는걸로.

'개발 > 잡동사니' 카테고리의 다른 글

Slack 에 운세봇 만들기 - 3(完)  (0) 2026.01.19
Slack 에 운세봇 만들기 - 2  (0) 2026.01.15