728x90
AI 업무 관리 및 생산성 도구
업무가 이루어지는 새로운 세상, Slack 전 세계에서 가장 사랑받는 업무용 운영 체제에 인력, 프로젝트, 도구, AI를 한데 모아보세요
slack.com
봇 생성
- 오른쪽 위 Your apps 클릭 -> Create App
처음 만드는 것이라면 Create an App ,
두번째 라면 Create New App


App Name : 지어주고 싶은 봇 이름
워크스페이스에 봇 추가

OAuth & Permissions -> Scope 를 지정 해주어야 한다.

편의를 위해 Admin 을 선택 했지만 정책에 따라 변경 해주자.


Edit -> 봇이름을 정해준다

App Home -> Allow users to send Slash commands and messages from the messages tab
체크해준다.
다시
OAuth & Permissions 탭으로 돌아와서 -> OAuth Tokens 에 있는
[Install to 워크스페이스이름] 버튼을 눌러주면, 워크스페이스 액세스 권한을 요청하면 허용 할 수 있다.
이 후, 아래와 같이 토큰을 받을 수 있다.

슬랙으로 돌아가 보면 봇이 추가 되어있는것을 확인 할 수 있다.

봇 오른쪽 클릭 후, 원하는 채널에 봇을 추가 해준다.


App Home -> 아래로 내려보면 아래의 탭을 볼 수 있다. 버튼 체크를 해주자

서버 구현 ( Spring + Kotlin )
의존성 추가
// Slack API
implementation("com.slack.api:slack-api-client:1.40.0")
implementation("com.slack.api:slack-app-backend:1.40.0")
// Slack kotlin 편의 의존성
implementation("com.slack.api:slack-api-model-kotlin-extension:1.40.0")
implementation("com.slack.api:slack-api-client-kotlin-extension:1.40.0")
@RestController
@RequestMapping("/api")
class SlackController(
private val service: SlackMessageService,
) {
@PostMapping("/subscript-event")
fun subscriptSlackEvent(
@RequestParam text: String,
): ResponseEntity<Unit> {
service.process(text)
return ResponseEntity.ok(Unit)
}
}
data class SlackInput(
val eventChannel: SlackChannel,
val eventText: String
)
@Service
@Transactional
class SlackMessageService {
// 위에서 복사해준 bot token 을 넣어주면 된다.
@Value("\${slack.api-token}")
private lateinit var token: String
@Lazy
private val slack = Slack.getInstance()
fun process(text: String) {
sendMessageToThread(SlackInput(
// 채널명은 "#채널명" 로 넣어준다
eventChannel = "#경고",
eventText = text,
))
}
private fun sendMessageToThread(input: SlackInput): ChatPostMessageResponse {
return slack.methods().chatPostMessage { chat ->
chat.token(token)
.channel(input.eventChannel.channelName)
.text(input.eventText)
}
}
}

728x90
'개-발 > Java + Spring + Kotlin' 카테고리의 다른 글
| [Spring] storekit2 / expo 인 앱 아이템 구매 확인 구현 3 (AOS) (0) | 2025.08.07 |
|---|---|
| [Spring] storekit2 / expo 인 앱 아이템 구매 확인 구현 2 (IOS) (2) | 2025.08.07 |
| [spring] read , write 분리하기 (DB Replication) (0) | 2025.06.12 |
| [Kotlin] 웹 크롤링 지연 후 가져오기 (0) | 2025.05.19 |
| [spring] valkey ssh 터널링 접근 (f.JSch) (0) | 2025.04.21 |