ETC

java slack api 예시 (webhookurl 사용)

무대포 개발자 2020. 9. 18. 19:53
728x90
반응형

slack api java source 설명

  • 여기서 주의할 점은 webhookUrl 은 본인 slack 의 WebBookUrl 을 적어줘야 한다.
  • 본인 WebBookUrl 확인하는 법은 slack api --> Incoming Webhooks 에 들어가면 아래 쪽에 webhookurl 이 있다.

import org.junit.Test;

public class SlackUtilsTest {

    @Test
    public void sendTest() {
        SlackUtils.send("Hello World");
    }
}






import com.slack.api.Slack;
import com.slack.api.webhook.Payload;
import com.slack.api.webhook.WebhookResponse;
import lombok.extern.slf4j.Slf4j;

import java.io.IOException;

@Slf4j
public class SlackUtils {
    public static WebhookResponse send(String text) {

        try {
            WebhookResponse response = null;
            Slack slack = Slack.getInstance();

            String webhookUrl = "https://hooks.slack.com/services/test";  // 본인 webhookurl 로 변경
            Payload payload = Payload.builder().text(text).build();
            response = slack.send(webhookUrl, payload);
            return response;
        } catch (IOException e) {
            log.error(e.getMessage(), e);
            throw new RuntimeException(e);
        }
    }
}





진행하면서 에러 발생

  • NoSuchMethodError 가 발생했는데 아래의 내용을 build.gradle 에 추가
compile group: 'com.slack.api', name: 'slack-api-client', version: '1.1.3'
compile group: 'com.google.code.gson', name: 'gson', version: '2.8.6'
compile group: 'com.slack.api', name: 'slack-api-model', version: '1.1.3'
compile group: 'com.squareup.okhttp3', name: 'okhttp', version: '4.8.1'

channel 로 공지하는 방법

  • < channel > 로 메시지를 입력하면 slack 에서 인식 못함.
  • < !channel >이렇게 해야 인식 함.

reference