Slack에 대해 알아보고 메세지도 보내보았으니 이제 Java 코드를 작성해서 메세지를 보내보자!
java를 사용해서 slack에 메세지를 보내려면 dependency를 추가하면 되는데 메이븐 리파지토리에서 추가하면 된다.
✔️jslack, ✔️Apache httpclient, ✔️httpmime를 사용하기로 했다.
Apache httpclient
는 API 상호작용을 위한 라이브러리다.
메이븐 리파지토리 사이트 👉 mvnrepository
jslack을 검색하고 원하는 버전의 코드를 복사해서 pom.xml
파일에 추가한다.
<dependency>
<groupId>com.github.seratch</groupId>
<artifactId>jslack</artifactId>
<version>3.4.2</version>
</dependency>
같은 방법으로 httpclient와 Apache HttpClient Mime 라이브러리도 추가한다.
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.14</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.13</version>
</dependency>
라이브러리를 추가했으니 코드를 작성한다.
이번 포스팅에는 웹훅 주소를 사용하려고 한다.
새로운 class 파일을 생성해 슬랙에 메세지를 보낼 코드를 작성한다.
public class test {
private static String webHookUrl ="https://hooks.slack.com/services/웹훅주소";
private static String token = "xoxb-토큰";
private static String slackChannel = "보낼 채널 이름";
public static void sendMessageSlack(String message) {
try {
StringBuilder builder = new StringBuilder();
builder.append(message);
com.github.seratch.jslack.api.webhook.Payload payload = com.github.seratch.jslack.api.webhook.Payload.builder().channel(slackChannel).text(builder.toString()).build();
com.github.seratch.jslack.api.webhook.WebhookResponse response = Slack.getInstance().send(webHookUrl, payload);
} catch (Exception e) {
e.printStackTrace();
}
}
생성한 웹훅 주소와 보낼 채널 이름 등을 문자열 변수로 적어주고
API를 사용해 호출하는 코드를 작성했다.
매개변수에 문자열 변수를 넣고 StringBuilder
로 이름을 지정하고
변수를 매개변수로 추가하는 것이라 StringBuilder에 추가해준다.
슬랙에 보낼 데이터를 갖는 payload
에 문자열로 변환한 채널을 호출하고 슬랙으로 메세지를 보내는데 payload는 URL로 전송된다.
그리고 예기치 않은 오류 발생을 막기 위한 try - catch
예외 처리를 하고
마지막으로 기본 메서드에 sendMessageSlack
부분에 보낼 메세지 내용을 입력하고 호출한다.
결과는 성공! 입력한 내용이 slack에 성공적으로 게시된 것을 볼 수 있다.
제대로 작동하는지 내용을 바꿔서 메세지를 보내도 잘 게시된다.
또 다른 코드로 작성해서 메세지를 보내보자!
여기에선 slack
을 사용하고 있는데 Slack API
라이브러리를 추가했다.
<dependency>
<groupId>com.slack.api</groupId>
<artifactId>slack-api-client</artifactId>
<version>1.29.2</version>
</dependency>
private static String webhookUrl = "https://hooks.slack.com/services/웹훅주소";
public static WebhookResponse send(String text) {
try {
WebhookResponse response = null;
Slack slack = Slack.getInstance();
Payload payload = Payload.builder().text(text).build();
response = slack.send(webhookUrl, payload);
return response;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
역시 잘 보내진다.