1. 목표
- QnA 등록시 슬랙방에 알람 보내기 기능 구현
2. 준비물
3. 코드
properties
slack.token = {slack에서 제공하는 app 토큰} (ex, xoxp- ....)
slack.channel = {공지를 보낼 채널} (ex, #notice)
SlackService
@Service
public class SlackService {
@Value(value = "${slack.token}")
String token;
@Value(value = "${slack.channel}")
String channel;
public void postSlackMessage(String message) {
try {
MethodsClient methods = Slack.getInstance().methods(token);
ChatPostMessageRequest request = ChatPostMessageRequest.builder()
.channel(channel)
.text(message)
.build();
methods.chatPostMessage(request);
} catch (SlackApiException | IOException e) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, e.getMessage());
}
}
}
@RestController
public class QnaController {
@PostMapping("...")
public ... createQnA(...) {
slackService.postSlackMessage("새로운 QnA가 생성되었습니다.");
return ...
}
}