Ktor에서 SlackBot을 만들어 보았습니다.

4533 단어 KtorslackbotKotlin
Slack에서 /chomado를 입력하면 방금 님의 사진을 반환하는 bot를 만들어 보았습니다.


샘플 코드는 여기입니다.
htps : // 기주 b. 코 m / 히로가 c / 조마 d ぃ

또, 서버도 공개하고 있으므로, SlackBot만 이용하고 싶은 분은 3. Slack에 연결 (으)로부터 읽어 주세요.

Steps


  • Ktor 앱 만들기
  • Heroku에 배포
  • Slack에 연결

  • 1. Ktor 앱 만들기



    공식 문서 에 따라 설정합니다.

    http://localhost:8080 로 움직이게 되면, 다음은 로직을 작성합니다.
    Ktor는 응답을 돌려주는 메소드에 data class를 건네주면 좋은 느낌으로 json으로 변환해주는 것 같기 때문에 (죄송합니다, 구조는 잘 모르겠습니다 ...!) 합니다.

    SlackResponse.kt
    # SlackResponse.kt
    package cc.hiroga
    
    data class SlackResponse(
        val response_type: String,
        val text: String,
        val attachments: Array<SlackResponseAttachement>
    )
    
    # SlackResponseAttatchment.kt
    package cc.hiroga
    
    data class SlackResponseAttachement(
        val image_url: String
    )
    

    데이터 클래스 객체 생성 및 응답
            post("/chomado") {
                val TEST_CHOMADO_PIC = "https://pbs.twimg.com/profile_images/1086536800791740417/uvkmvoBk_400x400.jpg"
                val attachment = SlackResponseAttachement(TEST_CHOMADO_PIC)
                val response = SlackResponse(
                    "in_channel",
                    "(*゚▽゚* っ)З. (*゚▽゚* っ)З ‬",
                    arrayOf(attachment)
                )
    
                call.respond(response)
            }
    

    결과
    # POST https://chomadlin.herokuapp.com/chomado
    {
        "response_type": "in_channel",
        "text": "(*゚▽゚* っ)З. (*゚▽゚* っ)З \u202c",
        "attachments": [
            {
                "image_url": "https://pbs.twimg.com/profile_images/1086536800791740417/uvkmvoBk_400x400.jpg"
            }
        ]
    }
    

    2. Heroku에 배포



    공식 문서 의 가이드대로, app.json (Heroku가 사용하는 컨테이너의 이미지등을 지정한다)와 Procfile (이미지중에서 기동되어야 할 명령을 지정한다)를 설정합니다.
    (system.properties는 설정하지 않아도 괜찮습니다 ...)

    3. Slack에 연결



    만약 Slack에서 조금 씨 bot을 사용하고 싶은 사람이 있다면, 아래의 URL로 순서를 진행해 보세요!
    h tps : // 조금 d. 어리석은 p. 코m/

    WorkSpace 내에서 앱 만들기


    앱의 기능으로 Slash Command 추가


    만든 앱을 Workspace에 설치


    소통 완료!


    요약



    Ktor를 사용하여 SlackBot 용 API를 신속하게 구성 할 수있었습니다.
    거기 작은 프레임워크이면서도 JSON에 대한 서포트가 있어, API 서버로서는 좋은 느낌(하지만 구조를 빨리 이해하고 싶다)라고 하는 인상입니다.
    다음은 Ktor의 구조를 세세하게 따라가면서, Bot의 로직도 수정해 갑니다!

    좋은 웹페이지 즐겨찾기