728x90
반응형
create new app - OAuth Permissions - add on OAuth scope 에서 channels:read, chat:write 추가
setting - install app - install to workspace 허용.
위 과정을 거치면 OAuth token 이 발급됨.
통합 - 앱추가 - 만든 앱 추가하기
이 토큰을 properties 에 등록.
slack.token=
build.gradle 에 추가
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")
테스트:
결과:
코드:
@Service
@Log4j2
@RequiredArgsConstructor
public class SlackService {
@Value("${slack.token}")
String slackToken;
public void sendSlackMessage(String message, String channel) {
String channelAddress = "";
log.info("Channel: " + channel);
if (channel.equals("error")) {
channelAddress = "#모니터링";
}
try {
MethodsClient methods = Slack.getInstance().methods(slackToken);
ChatPostMessageRequest request = ChatPostMessageRequest.builder()
.channel(channelAddress)
.text(message)
.build();
methods.chatPostMessage(request);
log.info("requeset :{}", request);
log.info("Slack " + channel + " 에 메시지 보냄");
} catch (SlackApiException | IOException e) {
log.error("Slack API 호출 중 오류 발생: ", e);
if (e instanceof SlackApiException) {
SlackApiException slackApiException = (SlackApiException) e;
log.error("Slack API 응답 상태: {}", slackApiException.getResponse());
}
}
}
}
728x90
'JAVA > 프로젝트' 카테고리의 다른 글
배포 자동화 - jenkins, ngrok, Webhooks (0) | 2024.11.26 |
---|---|
배포 자동화 - 이론. CICD, Gradle, Jenkins (0) | 2024.11.25 |
알림 기능 개발, AWS SNS 연동 (0) | 2024.11.21 |
성능테스트 - 리팩토링 (0) | 2024.11.21 |
성능 테스트 - Locust 설치, 이론 (1) | 2024.11.20 |