728x90
반응형
목표
- Spring boot와 Slack 연동
개발환경
Spring Boot : 3.2.5
java : 17
gradle: 8.7
실습
Slack Bot 키 발급
- 앱 추가 > bots 검색 후 추가 > 이름 추가 후 API 키 생성 (spring boot에서 이용)
- 슬랙에 alarm_bot이 추가 됨
- 채널 추가 ex) alarm : 알림을 받을 채널 신규 생성
build.gralde
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
// slack
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.properties
- slack bot api-key 설정
slack.api-key=xoxb-1600679941553-7004046945345-u7ISjWk
controller
import com.slack.api.Slack;
import com.slack.api.methods.MethodsClient;
import com.slack.api.methods.request.chat.ChatPostMessageRequest;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SlackController {
@Value("${slack.api-token}")
String slackApiToken;
@GetMapping("/send")
public void sendSlack(
@RequestParam String text
){
String channel = "alarm"; // 채널명 alarm
this.sendSlackMsg(channel, text);
}
// Slack 메시지 전송
private void sendSlackMsg(String channel, String text){
try {
// com.slack.api.methods.MethodsClient 패키지의 methodsClient 객체 생성
MethodsClient methodsClient = Slack.getInstance().methods(slackApiToken);
/// 요청 생성
ChatPostMessageRequest request = ChatPostMessageRequest.builder()
.channel(channel)
.text(text)
.build();
methodsClient.chatPostMessage(request);
} catch (Exception e){
System.out.println("sendSlackMsg Error");
}
}
}
테스트
포스트맨을 이용해 query param으로 text를 보낸다.
결과
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
반응형
'Spring' 카테고리의 다른 글
[에러] java.util.zip.ZipException: invalid code lengths set (1) | 2024.01.04 |
---|---|
[유효성검증] Spring Boot Validation (0) | 2023.04.14 |
Mustache로 템플릿 메일 발송 (0) | 2022.04.26 |
[Spring Boot] docker-compose로 mysql컨테이너 생성 및 Spring Boot 연결 (0) | 2021.09.13 |
[Spring AOP] AOP를 이용한 Decode (0) | 2021.08.28 |