💡Slack API Client
slack api client에는 Slack API를 요청하기 위한 간단하고 사용하기 쉬운 HTTP 클라이언트가 포함되어 있다.
Java로 Slack 앱을 빌드하기 위해 보다 맞춤화된 접근 방식이 필요한 경우에 사용하고, 이 프레임워크를 통해 개발자는 앱의 필수 부분에 집중할 수 있는 부분이 장점이라고 볼 수 있다.
기존 서비스에서 Slack API를 호출하려는 경우 Slack API 클라이언트만 사용하는 것이 좋고 대화형 Slack 앱을 개발 중이라면 Bolt를 추천한다고 한다.
📌자세한 내용은 API 클라이언트 기본 사항을 참조하자! 👉 Slack API Client
📣Slack을 사용하기위해 라이브러리를 추가했다는 전제 하에 코드를 작성한다.
사이트에 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()를 호출해 실행한다.
적은 내용으로 메세지가 왔다!! 다른 내용을 적어도 역시 잘 보내진다.
이렇게 다양한 이모티콘 보내기도 가능하다.😀