본문 바로가기

Tool/Slack

Slack 봇] 봇 만들기 -1 [메세지 전달]

회사 생활 하면서 필요한 정보가 있다.

Wifi 비밀번호, 팩스 번호 등등

 

회사 내에 커플루언스를 사용하고 있지만, 이런게 작거나 혹은 답이 정해져 있는 정보를 찾는데 닭 잡는데 소잡는 칼 쓰는격 같아 봇을 하나 만들기로 했다.

 

봇 생성

https://api.slack.com/

 

Slack은 당신을 위한 Digital HQ입니다

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

slack.com

  • 우측 상단 Your Apps 를 클릭
  • Create New App 클릭

Create New App

  • From Scrach 클릭
    • From an app manifest 의 경우 manifest 라는 구성 파일로 봇을 세팅 하는 방법이다.
    • From Scrach를 통해여 봇 설정 방법을 익힌 후에 사용할 수 있을 것 같다.

앱 설정

  • App Name에 앱 이름을 입력
  • Pick a workspace to develop your app in 에는 사용할 워크스페이스를 지정 한다.
    • 참고로 권한이 없으면 지정이 불가능 하다.
  • 봇 생성 선택

  • Review Scopes to Add 선택 
    • 봇이 어떠한 기능을 할 수 있는지 권한 (Permission)을 설정 하는 곳이다.

  • chat:write 를 선택

  • 처음에 활성화가 안되 있던 install to Workspace 가 활성화 된다. 

  • Install to Workspace 클릭 전에 봇의 정보를 입력 해야 한다.

  • Edit 을 클릭하여 봇의 정보를 입력하자

  • Install to Workspace 클릭

  • 허용 클릭

  • xoxb 로 시작하는 토큰 값이 생성 된다.

Kotlin & Gradle 기준 소스 코드

Gradle

implementation("com.slack.api:bolt:1.18.0")

 

Kotlin

    private fun sendSlackMessage(channel: String, msg: String) {
        val methods: MethodsClient = Slack.getInstance().methods(token) // xoxb 로 시작하는 토큰 값을 입력
        val request: ChatPostMessageRequest = ChatPostMessageRequest.builder()
            .channel(channel) // 채널명 혹은 채널 아이디로 가능 하다.
            .text(msg)
            .build()
        methods.chatPostMessage(request)
    }