[Slack] Java를 사용해 Slack에 메세지 보내기

JINI·2023년 4월 19일
0

slack

목록 보기
3/5
post-thumbnail

Slack에 대해 알아보고 메세지도 보내보았으니 이제 Java 코드를 작성해서 메세지를 보내보자!



🧩 1.dependency 추가


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>

같은 방법으로 httpclientApache 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>

라이브러리를 추가했으니 코드를 작성한다.





🧩 2.Java로 메세지 보내기


이번 포스팅에는 웹훅 주소를 사용하려고 한다.
새로운 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);
        }
    }

역시 잘 보내진다.


profile
꾸준히 성장하는 개발자

0개의 댓글