Ktor와 Bolt로 시작하는 Slack 애플리케이션으로 시작하기

10640 단어 KotlinSlacktech
며칠 전에 Ktor 1.5.0 나왔는데요!개발자 모델 등이 개선돼 동향을 계속 추적하고 싶다.그럼 이번엔 케이터와 볼트가 만드는 간단한 슬랙봇 애플리케이션을 주제로 소개한다.이 기사는 Ktor와 Kotlin으로 슬랙 앱을 만들려는 이들을 대상으로 한 것이고, 또 관계자 Advent Calendar 2020 24일째 되는 날이다.

Ktor 및 Bolt 정보


Bolt는 슬랙 응용 개발을 간단하게 하기 위한 프레임워크로 다양한 언어를 지원한다.java-slack-sdk 1.3.0 Ktolin의 웹 프레임워크 Ktor를 지원합니다.물론 코틀린도 이용할 수 있고 샘플 코드도 몇 개 제공되니 궁금하신 분들은 보세요.
이번에 슬랙/hello에 입력하면 제작Hello World해서 돌아오는 슬랙봇 앱을 만든다.전체 단계는 다음과 같습니다.
  • Slack Bot App 등록
  • Ktor 플러그인 설치
  • Ktor 및 Bolt를 통한 애플리케이션 개발

  • 1. Slack Bot App 로그인


    Slack 응용 프로그램 만들기


    Slack API로 마이그레이션하고 Create New App을 선택합니다.

    AppName 및 Development Slack Workspace 를 지정한 후 Create Apps 를 선택합니다.

    권한 설정


    프로그램이 만들어졌기 때문에 다음 권한을 설정합니다.OAuth &Permmision으로 마이그레이션합니다.Bot Token Scopes에 권한chat:write을 등록합니다.

    작업공간에 설치


    권한 설정이 완료되었기 때문에 작업 공간에 프로그램을 설치합니다.Settings>Basic Information>Install your app를 선택합니다.

    Install to Workspace 를 선택합니다.

    Allow를 선택합니다.

    컨트롤 토큰


    Ktor에서 Slack Bot을 사용하려면 Bot User OAuth Access Token과 Signing Secret을 미리 제어해야 합니다.OAuth &Permissions 를 선택합니다.Bot User OAuth Access Token을 제어합니다.

    그런 다음 Settings>Basic Information 을 선택합니다.App Credentials의 Signing Secret을 제어합니다.

    2. Ktor 플러그인 설치


    여기서부터 Ktor와 Bolt를 사용하여 프로그램을 만들지만, Ktor 플러그인을 사용하면 Ktor 프로젝트의 초기 형태를 간단하게 만들 수 있습니다.다음은 IntelliJ IDEA를 사용하는 단계에 대한 설명입니다.
    Ktor 플러그인을 설치합니다.

    새 Ktor 프로젝트

    프로젝트의 초기 형태를 간단하게 완성하였다.

    3. Ktor와 Bolt를 통한 애플리케이션 개발


    여기서부터 슬랙에/hello를 입력하면 되돌려주는 슬랙봇 앱을 제작Hello World한다.Ktor와 Bolt의 의존 관계를 추가합니다.
    build.gradle
    dependencies {
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
        implementation "io.ktor:ktor-server-netty:$ktor_version"
        implementation "ch.qos.logback:logback-classic:$logback_version"
        implementation("com.slack.api:bolt-ktor:1.3.0") 
        implementation("io.ktor:ktor-server-netty:$ktor_version") 
        testImplementation "io.ktor:ktor-server-tests:$ktor_version"
    }
    
    이어 슬랙에서 수락/hello했을 때 슬랙봇이 되돌아오는 처리Hello World를 기술했다.
    Application.kt
    import com.slack.api.bolt.App
    import com.slack.api.bolt.ktor.respond
    import com.slack.api.bolt.ktor.toBoltRequest
    import com.slack.api.bolt.util.SlackRequestParser
    import io.ktor.application.*
    import io.ktor.routing.*
    import io.ktor.server.engine.*
    import io.ktor.server.netty.*
    
    fun main() {
        val app = App()
        val requestParser = SlackRequestParser(app.config())
        app.command("/hello") { req, ctx ->
            ctx.ack("Hello World")
        }
    
        val server = embeddedServer(Netty, port = 3000) {
            routing {
                post("/slack/events") {
                    respond(call, app.run(toBoltRequest(call, requestParser)))
                }
            }
        }
        server.start()
    }
    
    Environment variables로 이동하고 SLACK 제어BOT_TOKIO 및 SLACK -SIGNING_SECRET 등록

    Ktor에서 시작한 Bolt 애플리케이션ngrok에 액세스하기 위해Application.전달된 URL을 가져오려면 kt를 실행합니다.Slack API 화면으로 돌아가서 Features > Slash Commands 에서Create New Command 를 선택하십시오.Command/hello, Request URLhttps://{ドメイン}/slack/events에서 Save를 선택합니다.

    Install Apps로 전환한 후 Reinstall Apps를 선택합니다.그런 다음 Reinstall to Workspace 를 선택합니다.지정된 작업공간의 Slack에서 /hello 명령을 실행한 후

    표시Hello World.

    총결산


    거의 슬랙 앱의 설정 소개이고 볼트도 Ktor를 지원하며 Ktor의 슬랙 앱은 개발하기 쉽다.이번에는 닿지 않았지만 모태를 만들 때Kotlin DSL 지원 Block Kit 해봤기 때문에 쉽게 기술할 수 있었다.가능하면 해보세요.

    좋은 웹페이지 즐겨찾기