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 上繼續。
我們歡迎大家的貢獻!請查看我們的貢獻者指南,以了解如何以有益且協作的方式做出貢獻。