Back-End/SpringBoot
[SpringBoot] 슬랙 메시지 전송
코딩콩
2022. 5. 21. 22:45
사용이유
서비스 운영자를 위한 목적으로 특정 결과를 슬랙 전송
슬랙에 Incoming WebHooks 앱 추가
추가하면 채널을 선택(또는 추가)하고 웹훅 url을 복사
슬랙 전송 서비스 코드 작성
@Service
public class SendMatchingFailSlack {
private static final String WEB_HOOK_URL ="https://hooks.slack.com/services/~~~";
private final WebClient webClient;
public SendMatchingFailSlack(WebClient webClient) {
this.webClient = webClient;
}
public void send(MessageDTO messageDTO) {
Map<String, Object> request = new HashMap<>();
request.put("username", "전송이름");
request.put("text", "이렇게 직접 작성해서 보내거나");
request.put("icon_emoji",":ghost:");
webClient.post()
.uri(WEB_HOOK_URL)
.bodyValue(request)
.retrieve()
.bodyToMono(String.class)
.block();
}
}
저는 username, text, icon_emoji만 설정했지만 이미지 첨부도 가능하고 추가할 수 있는 속성은 더 다양합니다.
위 처럼 text에 그냥 넣어도 되고 동적으로 텍스트 치환을 사용하고 싶다면 아래와 같이 String.format을 이용
@Service
public class SendMatchingFailSlack {
...
public void send(MessageDTO messageDTO) {
Map<String, Object> request = new HashMap<>();
request.put("username", "운영알림봇");
request.put("text", generateMessage(messageDTO));
request.put("icon_emoji",":money_with_wings:");
webClient.post()
.uri(WEB_HOOK_URL)
.bodyValue(request)
.retrieve()
.bodyToMono(String.class)
.block();
}
private String generateMessage(MessageDTO messageDTO) {
return String.format("입금자명 : %s, 입금금액 : %s \n"
messageDTO.getName(),
MoneyFormatter.format(messageDTO.getDepositAmount().longValue()));
}
}
+ 이모지 short code 찾기
📙 Emojipedia — 😃 Home of Emoji Meanings 💁👌🎍😍
emojipedia.org
이모지 선택해서 들어가면 하단에 shortcode 있습니다.
참고
https://leeborn.tistory.com/entry/Spring-Boot-%EC%8A%AC%EB%9E%99-webhook-%EB%A9%94%EC%8B%9C%EC%A7%80-%EB%B3%B4%EB%82%B4%EA%B8%B0
[Spring Boot] 슬랙 메시지 보내기(Incoming WebHooks)
슬랙의 "Incoming WebHooks"을 이용해서 메시지를 보내는 방법이다. 먼저 슬랙에서 앱의 설치 및 설정이 필요하다. 1. 슬랙을 설치하고, "Incoming WebHooks" 앱을 추가한다. 2. 앱의 설정으로 이동한다. 3. 보
leeborn.tistory.com