๋ฐ์ํ
๊ธฐ๋ฅ ์ ์
- ๊ทธ๋ฃน์ด ์ฌ๋๊ณผ ์ฐ๋ํ ๊ฒฝ์ฐ, ๊ทธ๋ฃน ์๋ค์ ์ํ๊ฐ Slack Bot์ ํตํด ํ์๋๋ค!
1. Slack App ๋ง๋ค๊ธฐ
https://api.slack.com/ ์์ Slack Bot ๋ง๋ค๊ธฐ
- App Name๊ณผ workspace ์ ํ
- AppName์ ๊ฒฝ์ฐ ์ถํ ๋ณ๊ฒฝ ๊ฐ๋ฅ
- workspace๊ฐ ์์ผ๋ฉด app ์์ฑ ๋ถ๊ฐ! → ์ฌ๋ฌ workspace์์ ์ฌ์ฉํ๋ bot๊ฐ๋ฐ ์, ์์ฑ ํ distribution ์ค์ ํด์ผ ํจ
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 ์ค์ ๋ฉ์ธ์ง ํ์์ ํ์ธํด๋ณผ ์ ์๋ ํ์ด์ง
๊ฒฐ๊ณผ
๋ฐ์ํ
'๐ป ๊ฐ๋ฐ ์ผ์ง > SpringBoot' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SpringBoot] Kafka ์ฐ๋(docker) ๋ฐ Consumer ๊ตฌํํ๊ธฐ (0) | 2023.01.11 |
---|---|
[Spring Boot] Custom Exception Response ๋ง๋ค๊ธฐ (0) | 2022.04.26 |
[Error] org.mockito.exceptions.misusing.UnnecessaryStubbingException: Unnecessary stubbings detected. (0) | 2022.03.27 |
[Test] SpringBoot Test - Service (Mockito) (0) | 2022.03.27 |
[22.03.09] QueryDSL (0) | 2022.03.09 |