Slack SDK for Java以 Java 惯用方式支持 Slack 平台。 SDK 用 Java 编写,因此开发人员可以在任何 JVM 语言中使用它,包括 Kotlin、Groovy 和 Scala。
SDK 内有两个不同的模块:
如果您想要在现有服务中调用 Slack API,我们建议仅使用Slack API Client 。相反,如果您正在开发一个新的现代交互式 Slack 应用程序,我们建议您使用Bolt 。该框架使开发人员能够专注于应用程序的基本部分,而不会被琐事所困扰。
Bolt for Java是 JVM 上的一个框架,它提供了一个抽象层,可以使用现代平台功能快速构建 Slack 应用程序。有关详细说明,请参阅 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包含简单、易于使用且可灵活配置的 HTTP 客户端,用于向 Slack API 发出请求。有关详细信息,请参阅 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 中央存储库中找到。最新版本是:
组ID:工件ID | 描述 |
---|---|
com.slack.api:螺栓 | Bolt 是一个框架,它提供了一个抽象层来安全、快速地构建 Slack 应用程序。最常用的 Servlet 环境是开箱即用的。 |
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 | 这是 Micronaut 的适配器,可在其上运行 Bolt 应用程序。 |
com.slack.api:bolt-helidon | 这是 Helidon SE 的适配器,可在其上运行 Bolt 应用程序。 |
com.slack.api:bolt-http4k | 这是 http4k 的适配器,用于在库支持的任何多个服务器后端上运行 Bolt 应用程序。 |
com.slack.api:bolt-ktor | 这是 Ktor 的适配器,可在其上运行 Bolt 应用程序。 |
组ID:工件ID | 描述 |
---|---|
com.slack.api:slack-api-模型 | 这是表示 Slack 核心对象(例如对话、消息、用户、块和表面)的类的集合。由于这是 SDK 的重要组成部分,所有其他模块都依赖于此。 |
com.slack.api:slack-api-model-kotlin-extension | 其中包含 Block Kit Kotlin DSL 构建器,它允许您通过 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 | 该模块是一组 Slack 应用程序服务器端处理程序和数据类,用于事件 API、交互组件、Slash 命令、操作和 OAuth 流。 Bolt 框架使用这些作为原始层的基础。 |
该 SDK 支持OpenJDK 8 及更高的 LTS 版本。
用户可以期望在通过运行所有 LTS 版本的基本 CI 构建来验证功能后完成每个补丁版本,并且所有单元测试至少在最新的 LTS 版本上通过。我们不会对所有 OpenJDK 发行版进行全面验证,但它应该适用于所有发行版。
如果您遇到困难,我们随时为您提供帮助。以下是获得帮助解决问题的最佳方法:
jSlack 项目已转移到@slackapi。针对安全问题或主要错误修复的 jSlack 维护版本将在 https://github.com/seratch/jslack-maintenance-releases 上继续。
我们欢迎大家的贡献!请查看我们的贡献者指南,了解如何以有益且协作的方式做出贡献。