Ktor에서 SlackBot을 만들어 보았습니다.
/chomado
를 입력하면 방금 님의 사진을 반환하는 bot를 만들어 보았습니다.샘플 코드는 여기입니다.
htps : // 기주 b. 코 m / 히로가 c / 조마 d ぃ
또, 서버도 공개하고 있으므로, SlackBot만 이용하고 싶은 분은 3. Slack에 연결 (으)로부터 읽어 주세요.
Steps
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의 로직도 수정해 갑니다!
Reference
이 문제에 관하여(Ktor에서 SlackBot을 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hiroga/items/0bbdb0dd13861e0a9396
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# 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"
}
]
}
공식 문서 의 가이드대로,
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의 로직도 수정해 갑니다!
Reference
이 문제에 관하여(Ktor에서 SlackBot을 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hiroga/items/0bbdb0dd13861e0a9396
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Ktor를 사용하여 SlackBot 용 API를 신속하게 구성 할 수있었습니다.
거기 작은 프레임워크이면서도 JSON에 대한 서포트가 있어, API 서버로서는 좋은 느낌(하지만 구조를 빨리 이해하고 싶다)라고 하는 인상입니다.
다음은 Ktor의 구조를 세세하게 따라가면서, Bot의 로직도 수정해 갑니다!
Reference
이 문제에 관하여(Ktor에서 SlackBot을 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hiroga/items/0bbdb0dd13861e0a9396텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)