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

JINI·2023년 4월 21일
0

slack

목록 보기
4/5
post-thumbnail

💡Slack API Client

slack api client에는 Slack API를 요청하기 위한 간단하고 사용하기 쉬운 HTTP 클라이언트가 포함되어 있다.

Java로 Slack 앱을 빌드하기 위해 보다 맞춤화된 접근 방식이 필요한 경우에 사용하고, 이 프레임워크를 통해 개발자는 앱의 필수 부분에 집중할 수 있는 부분이 장점이라고 볼 수 있다.

기존 서비스에서 Slack API를 호출하려는 경우 Slack API 클라이언트만 사용하는 것이 좋고 대화형 Slack 앱을 개발 중이라면 Bolt를 추천한다고 한다.


📌자세한 내용은 API 클라이언트 기본 사항을 참조하자! 👉 Slack API Client

📣Slack을 사용하기위해 라이브러리를 추가했다는 전제 하에 코드를 작성한다.


👾 Slack API Client로 메세지 보내기


사이트에 Java용 Slack SDK 예제 코드가 잘 나와있고 마음에 드는 것을 골라 코드를 살짝 바꿔서 작성했다.


👾버전1. 요청/응답 코드

public class slackAPI {

	public static void main(String[] args){ //메인 메서드에서 호출위해 예외 처리
		try {
			messageToSlack();
		} catch (IOException | SlackApiException e) {
			e.printStackTrace();
		}
	}
	//	private static Slack slack = Slack.getInstance();
	//	private static String token = "";
	//	private static MethodsClient methods = slack.methods(token);

	public static void messageToSlack() throws IOException, SlackApiException {
		Slack slack = Slack.getInstance();
		String token = "";
		MethodsClient methods = slack.methods(token);

		// Build a request object
		ChatPostMessageRequest request = ChatPostMessageRequest.builder()
				.channel("#slack-bot-test1") // 채널명 or 채널 ID
				.text(":smile: HAHA.")
				.build();

		// Get a response as a Java object
		ChatPostMessageResponse response = methods.chatPostMessage(request);
	}
}

chat.postMessage와 같은 Web API 메서드를 호출하기 위해 초기화가 필요하기 때문에 Slack slack = Slack.getInstance();를 작성한다.

MethodsClient 객체를 이용해 발급받은 Token을 적고
응답 부분에 ChatPostMessageRequest 객체로 보내고자 하는 채널명 또는 채널 ID와 메시지를 지정해주도록 한다.
그리고 sendTextMessage()를 호출해 실행한다.

이모티콘 보내기도 가능한데 :smile: 처럼 : :안에 이코티콘 이름을 적어주면 된다.



👾버전2. 간단하게 줄인 코드

public class slackMessage {
	private static Slack slack = Slack.getInstance();
	private static String token = "토큰";

	public static void sendTextMessage() throws IOException, SlackApiException {
		//Slack slack = Slack.getInstance();  슬랙 시작을 위한 코드 

		ChatPostMessageResponse response = slack.methods(token).chatPostMessage(req -> req
				.channel("") // Channel ID
				.text(":wave: Hi from a bot written in Java!"));
	}
}

다양한 API 메서드가 있는데 그 중에서 chat.postMessage을 사용해 메시지를 보내려고 한다.
역시 초기화 후 Token도 적기.

응답 부분에 간단하게 채널 ID와 text를 적고 sendTextMessage()를 호출해 실행한다.

적은 내용으로 메세지가 왔다!! 다른 내용을 적어도 역시 잘 보내진다.

이렇게 다양한 이모티콘 보내기도 가능하다.😀


profile
꾸준히 성장하는 개발자

0개의 댓글