Das Slack SDK für Java unterstützt die Slack-Plattform auf Java-idiomatische Weise. Das SDK ist in Java geschrieben, sodass Entwickler es in jeder JVM-Sprache verwenden können, einschließlich Kotlin, Groovy und Scala.
Innerhalb des SDK gibt es zwei verschiedene Module:
Wenn Sie Slack-APIs in Ihren vorhandenen Diensten aufrufen möchten, empfehlen wir, nur den Slack-API-Client zu verwenden. Wenn Sie stattdessen eine neue moderne und interaktive Slack-App entwickeln, empfehlen wir Bolt dafür. Das Framework ermöglicht es Entwicklern, sich auf die wesentlichen Teile ihrer Apps zu konzentrieren, ohne sich um Kleinigkeiten kümmern zu müssen.
Bolt für Java ist ein Framework auf der JVM, das eine Abstraktionsebene zum schnellen Erstellen von Slack-Apps unter Verwendung moderner Plattformfunktionen bietet. Ausführliche Anweisungen finden Sie unter „Erste Schritte mit 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
}
}
Für Apps, die den Socket-Modus aktivieren, ist „Erste Schritte mit Bolt“ (Socket-Modus) verfügbar.
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 enthält einfache, benutzerfreundliche und flexibel konfigurierbare HTTP-Clients für Anfragen an Slack-APIs. Weitere Informationen finden Sie unter API-Client-Grundlagen.
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!" ));
Die folgende Tabelle zeigt alle verfügbaren Module im Slack Java SDK. Alle von ihnen haben die gleiche neueste Version, die wir alle gleichzeitig veröffentlichen, auch für den Fall, dass einige außer Aktualisierungen auf ihrer Abhängigkeitsseite keine Änderungen aufweisen.
Alle veröffentlichten Versionen sind in den Maven Central-Repositorys verfügbar. Die neueste Version ist:
Gruppen-ID: Artefakt-ID | Beschreibung |
---|---|
com.slack.api:bolt | Bolt ist ein Framework, das eine Abstraktionsebene zum sicheren und schnellen Erstellen von Slack-Apps bietet. Die am häufigsten verwendete Servlet-Umgebung wird standardmäßig unterstützt. |
com.slack.api:bolt-socket-mode | Dieses Modul bietet eine praktische Möglichkeit, Bolt-Apps über Socket-Modus-Verbindungen auszuführen. |
com.slack.api:bolt-stegty | Dieses Modul bietet eine praktische Möglichkeit, Bolt-Apps auf dem Java EE-kompatiblen Jetty HTTP-Server (9.x) auszuführen. |
com.slack.api:bolt-jakarta-jetty | Dieses Modul bietet eine praktische Möglichkeit, Bolt-Apps auf dem Jakarta EE-kompatiblen Jetty HTTP-Server auszuführen. |
com.slack.api:bolt-aws-lambda | Dieses Modul bietet eine praktische Möglichkeit, Bolt-Apps auf AWS API Gateway + Lambda auszuführen. |
com.slack.api:bolt-google-cloud-functions | Dieses Modul bietet eine praktische Möglichkeit, Bolt-Apps auf Google Cloud Functions auszuführen. |
com.slack.api:bolt-micronaut | Dies ist ein Adapter für Micronaut, um darauf Bolt-Apps auszuführen. |
com.slack.api:bolt-helidon | Dies ist ein Adapter für Helidon SE, um darauf Bolt-Apps auszuführen. |
com.slack.api:bolt-http4k | Dies ist ein Adapter für http4k, um Bolt-Apps auf einem der mehreren Server-Backends auszuführen, die die Bibliothek unterstützt. |
com.slack.api:bolt-ktor | Dies ist ein Adapter für Ktor, um darauf Bolt-Apps auszuführen. |
Gruppen-ID: Artefakt-ID | Beschreibung |
---|---|
com.slack.api:slack-api-model | Dies ist eine Sammlung der Klassen, die die Slack-Kernobjekte wie Konversationen, Nachrichten, Benutzer, Blöcke und Oberflächen darstellen. Da dies ein wesentlicher Bestandteil des SDK ist, sind alle anderen Module davon abhängig. |
com.slack.api:slack-api-model-kotlin-extension | Dieser enthält den Block Kit Kotlin DSL Builder, der es Ihnen ermöglicht, Block Kit-Strukturen über ein Kotlin-natives DSL zu definieren. |
com.slack.api:slack-api-client | Dies ist eine Sammlung der Slack-API-Clients. Unterstützt werden folgende API-Methoden: Basic API, Socket Mode, RTM (Real Time Messaging) API, SCIM API, Audit Logs API und Status API. |
com.slack.api:slack-api-client-kotlin-extension | Dieses enthält Erweiterungsmethoden für verschiedene Slack-Client-Message-Builder, sodass Sie das Block Kit Kotlin DSL nahtlos direkt auf den Java-Message-Buildern verwenden können. |
com.slack.api:slack-app-backend | Bei diesem Modul handelt es sich um eine Reihe serverseitiger Handler und Datenklassen der Slack-App für die Ereignis-API, interaktive Komponenten, Slash-Befehle, Aktionen und den OAuth-Fluss. Diese werden vom Bolt-Framework als Grundlage dafür in primitiven Schichten verwendet. |
Das SDK unterstützt OpenJDK 8 und höhere LTS-Versionen .
Benutzer können davon ausgehen, dass jede einzelne Patch-Veröffentlichung durchgeführt wurde, nachdem die Funktionalität überprüft wurde, indem die grundlegenden CI-Builds mit allen LTS-Versionen ausgeführt wurden und alle Komponententests zumindest für die neueste LTS-Version bestanden wurden. Wir führen nicht bei allen OpenJDK-Distributionen umfassende Überprüfungen durch, aber es sollte mit allen funktionieren.
Wenn Sie nicht weiterkommen, sind wir hier, um Ihnen zu helfen. Im Folgenden finden Sie die besten Möglichkeiten, Hilfe bei der Lösung Ihres Problems zu erhalten:
Das jSlack-Projekt wurde an @slackapi übertragen. Die jSlack-Wartungsversionen für Sicherheitsprobleme oder größere Bugfixes werden unter https://github.com/seratch/jslack-maintenance-releases fortgesetzt.
Wir freuen uns über Beiträge von allen! Bitte schauen Sie sich unseren Leitfaden für Mitwirkende an, um zu erfahren, wie Sie auf hilfreiche und kollaborative Weise Beiträge leisten können.