Boot - Slack Bot 연동하기
7724 단어 Springboot두콩개발일지Springboot
기능 정의
- 그룹이 슬랙과 연동할 경우, 그룹 원들의 상태가 Slack Bot을 통해 표시된다!
1. Slack App 만들기
https://api.slack.com/ 에서 Slack Bot 만들기
https://api.slack.com/ 에서 Slack Bot 만들기
- App Name과 workspace 선택
- AppName의 경우 추후 변경 가능
- workspace가 없으면 app 생성 불가!
→ 여러 workspace에서 사용하는 bot개발 시, 생성 후 distribution 설정 해야 함
생성 후 Bots 선택!
Scope 적용
Review Scopes to Add 후, 원하는 Scope들을 선택!
- 해당 앱의 경우, 단순히 채널에 메세지만 보내는 기능이므로
Bot Token Scopes
에chat:write
만 설정 - https://api.slack.com/scopes ← scope에 대한 설명
Workspace에 설치
- Scope설정 완료되면 Install to Workspace가 활성화된다.
- 설치를 마치면 토큰이 적혀있는 페이지를 볼 수 있다.
2. Spring Boot 설정
https://slack.dev/java-slack-sdk/guides/getting-started-with-bolt#gradle 를 참고하여
Gradle 환경 세팅
build.gradle
dependencies {
implementation("com.slack.api:bolt:1.18.0")
implementation("com.slack.api:bolt-servlet:1.18.0")
implementation("com.slack.api:bolt-jetty:1.18.0")
}
application.yml
slack:
token: 'xoxb-발급받은 토큰'
channel: '#채널명'
NotificationService
import org.springframework.beans.factory.annotation.Value;
@Value(value = "${slack.token}")
String token;
@Value(value = "${slack.channel}")
String channel;
private void sendSlackMessage(String username, Boolean activate) {
String message = (activate)? "> :writing_hand: *["+username+"]* 님이 업무 집중을 시작했어요!"
: "> :raised_hands: *["+username+"]* 님이 쉬고 있어요!";
try{
MethodsClient methods = Slack.getInstance().methods(token);
ChatPostMessageRequest request = ChatPostMessageRequest.builder()
.channel(channel)
.text(message)
.build();
methods.chatPostMessage(request);
}catch (Exception e){
throw new CustomException(ErrorCode.FAIL_SEND_SLACK);
}
}
- Slack Message는 마크다운 문법을 지원하므로, 텍스트에 적용이 가능하다!
( 마크다운 문법이 조금 다르므로 공식 페이지에서 꼭 확인..! ) - https://api.slack.com/methods/chat.postMessage/test
실제 메세지 형식을 확인해볼 수 있는 페이지
결과
Author And Source
이 문제에 관하여(Boot - Slack Bot 연동하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dot2__/SpringBoot-Slack-Bot-연동하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)