Java용 Slack SDK는 Java 관용적 방식으로 Slack 플랫폼을 지원합니다. 개발자가 Kotlin, Groovy, Scala를 포함한 모든 JVM 언어에서 사용할 수 있도록 Java로 작성된 SDK입니다.
SDK에는 두 가지 모듈이 있습니다.
기존 서비스에서 Slack API를 호출하려는 경우 Slack API 클라이언트 만 사용하는 것이 좋습니다. 대신에 새롭고 현대적인 대화형 Slack 앱을 개발 중이라면 Bolt를 추천합니다. 이 프레임워크를 통해 개발자는 사소한 일에 신경 쓰지 않고 앱의 핵심 부분에 집중할 수 있습니다.
Bolt for Java 는 최신 플랫폼 기능을 사용하여 Slack 앱을 빠르게 구축할 수 있는 추상화 계층을 제공하는 JVM의 프레임워크입니다. 자세한 지침은 Bolt 시작하기를 참조하세요.
package hello ;
import com . slack . api . bolt . App ;
import com . slack . api . bolt . jetty . SlackAppServer ;
public class MyApp {
public static void main ( String [] args ) throws Exception {
// App expects env variables (SLACK_BOT_TOKEN, SLACK_SIGNING_SECRET)
App app = new App ();
app . command ( "/hello" , ( req , ctx ) -> {
return ctx . ack ( ":wave: Hello!" );
});
SlackAppServer server = new SlackAppServer ( app );
server . start (); // http://localhost:3000/slack/events
}
}
소켓 모드 지원 앱의 경우 Bolt 시작하기(소켓 모드)를 사용할 수 있습니다.
package hello ;
import com . slack . api . bolt . App ;
import com . slack . api . bolt . socket_mode . SocketModeApp ;
public class MyApp {
public static void main ( String [] args ) throws Exception {
// App expects an env variable: SLACK_BOT_TOKEN
App app = new App ();
app . command ( "/hello" , ( req , ctx ) -> {
return ctx . ack ( ":wave: Hello!" );
});
// SocketModeApp expects an env variable: SLACK_APP_TOKEN
new SocketModeApp ( app ). start ();
}
}
slack-api-client 에는 Slack API에 요청하기 위한 간단하고 사용하기 쉽고 유연하게 구성 가능한 HTTP 클라이언트가 포함되어 있습니다. 자세한 내용은 API 클라이언트 기본 사항을 참조하세요.
import com . slack . api . Slack ;
import com . slack . api . methods . response . chat . ChatPostMessageResponse ;
Slack slack = Slack . getInstance ();
String token = System . getenv ( "SLACK_TOKEN" );
ChatPostMessageResponse response = slack . methods ( token ). chatPostMessage ( req -> req
. channel ( "C1234567" ) // Channel ID
. text ( ":wave: Hi from a bot written in Java!" ));
아래 표에는 Slack Java SDK에서 사용 가능한 모든 모듈이 나와 있습니다. 일부는 종속성 측면의 업데이트 외에 변경 사항이 없는 경우에도 모두 동시에 출시되는 것과 동일한 최신 버전을 갖습니다.
출시된 모든 버전은 Maven Central 저장소에서 사용할 수 있습니다. 최신 버전은 다음과 같습니다:
groupId:artifactId | 설명 |
---|---|
com.slack.api:볼트 | Bolt는 Slack 앱을 안전하고 빠르게 구축하기 위한 추상화 계층을 제공하는 프레임워크입니다. 가장 일반적으로 사용되는 서블릿 환경은 기본적으로 지원됩니다. |
com.slack.api:볼트 소켓 모드 | 이 모듈은 소켓 모드 연결을 통해 Bolt 앱을 실행하는 편리한 방법을 제공합니다. |
com.slack.api:bolt-jetty | 이 모듈은 Java EE 호환 Jetty HTTP 서버(9.x)에서 Bolt 앱을 실행하는 편리한 방법을 제공합니다. |
com.slack.api:bolt-jakarta-jetty | 이 모듈은 Jakarta EE 호환 Jetty HTTP 서버에서 Bolt 앱을 실행하는 편리한 방법을 제공합니다. |
com.slack.api:bolt-aws-lambda | 이 모듈은 AWS API Gateway + Lambda에서 Bolt 앱을 실행하는 편리한 방법을 제공합니다. |
com.slack.api:bolt-google-cloud-functions | 이 모듈은 Google Cloud Functions에서 Bolt 앱을 실행하는 편리한 방법을 제공합니다. |
com.slack.api:bolt-micronaut | 그 위에 Bolt 앱을 실행하기 위한 Micronaut용 어댑터입니다. |
com.slack.api:bolt-helidon | Helidon SE 위에서 Bolt 앱을 실행하기 위한 어댑터입니다. |
com.slack.api:bolt-http4k | 이는 라이브러리가 지원하는 여러 서버 백엔드 위에서 Bolt 앱을 실행하기 위한 http4k용 어댑터입니다. |
com.slack.api:bolt-ktor | Ktor에서 Bolt 앱을 실행하기 위한 어댑터입니다. |
groupId:artifactId | 설명 |
---|---|
com.slack.api:slack-api-모델 | 대화, 메시지, 사용자, 블록, 표면 등 Slack 핵심 객체를 나타내는 클래스 모음입니다. 이는 SDK의 필수 부분이므로 다른 모든 모듈은 이에 의존합니다. |
com.slack.api:slack-api-model-kotlin-extension | 여기에는 Kotlin 기본 DSL을 통해 블록 키트 구조를 정의할 수 있는 Block Kit Kotlin DSL 빌더가 포함되어 있습니다. |
com.slack.api:slack-api-클라이언트 | Slack API 클라이언트 모음입니다. 지원되는 것은 기본 API 방법, 소켓 모드, RTM(실시간 메시징) API, SCIM API, 감사 로그 API 및 상태 API입니다. |
com.slack.api:slack-api-client-kotlin-extension | 여기에는 다양한 Slack 클라이언트 메시지 빌더에 대한 확장 메서드가 포함되어 있으므로 Java 메시지 빌더에서 직접 Block Kit Kotlin DSL을 원활하게 사용할 수 있습니다. |
com.slack.api:slack-app-backend | 이 모듈은 이벤트 API, 대화형 구성 요소, 슬래시 명령, 작업 및 OAuth 흐름을 위한 Slack 앱 서버 측 핸들러 및 데이터 클래스 세트입니다. 이는 Bolt 프레임워크에서 기본 레이어의 기초로 사용됩니다. |
SDK는 OpenJDK 8 이상 LTS 버전을 지원합니다.
사용자는 모든 LTS 버전에서 기본 CI 빌드를 실행하고 최소한 최신 LTS 버전에서 모든 단위 테스트를 통과하여 기능을 확인한 후 모든 단일 패치 릴리스가 완료될 것으로 예상할 수 있습니다. 모든 OpenJDK 배포판에 대해 포괄적인 검증을 실행하지는 않지만 모든 OpenJDK 배포판에서 작동해야 합니다.
문제가 발생하면 저희가 도와드리겠습니다. 다음은 문제 해결을 위해 도움을 받을 수 있는 가장 좋은 방법입니다.
jSlack 프로젝트가 @slackapi로 이전되었습니다. 보안 문제 또는 주요 버그 수정에 대한 jSlack 유지 관리 릴리스는 https://github.com/seratch/jslack-maintenance-releases에서 계속됩니다.
우리는 모든 사람의 기여를 환영합니다! 유용하고 협력적인 방식으로 기여하는 방법은 기여자 가이드를 확인하세요.