Slack SDK для Java поддерживает платформу Slack идиоматическим языком Java. SDK написан на Java, поэтому разработчики могут использовать его на любом языке JVM, включая Kotlin, Groovy и Scala.
В SDK есть два разных модуля:
Если вы хотите вызывать API Slack в существующих сервисах, мы рекомендуем использовать только клиент Slack API . Если вместо этого вы разрабатываете новое современное интерактивное приложение Slack, мы рекомендуем для этого Bolt . Фреймворк позволяет разработчикам сосредоточиться на основных частях своих приложений, не беспокоясь о мелочах.
Bolt для 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
}
}
Для приложений с поддержкой режима Socket доступен раздел «Начало работы с Bolt (режим Socket)».
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-клиенты для отправки запросов к API Slack. Подробности см. в разделе «Основы 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-socket-mode | Этот модуль предлагает удобный способ запуска приложений Bolt через соединения в режиме сокета. |
com.slack.api:bolt-jetty | Этот модуль предлагает удобный способ запуска приложений Bolt на HTTP-сервере Jetty, совместимом с Java EE (9.x). |
com.slack.api:bolt-jakarta-jetty | Этот модуль предлагает удобный способ запуска приложений Bolt на HTTP-сервере Jetty, совместимом с Jakarta EE. |
com.slack.api:bolt-aws-lambda | Этот модуль предлагает удобный способ запуска приложений Bolt на AWS API Gateway + Lambda. |
com.slack.api:bolt-google-cloud-functions | Этот модуль предлагает удобный способ запуска приложений Bolt в Google Cloud Functions. |
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:болт-ктор | Это адаптер для Ktor, позволяющий запускать поверх него приложения Bolt. |
groupId:artifactId | Описание |
---|---|
com.slack.api:slack-api-модель | Это коллекция классов, представляющих основные объекты Slack, такие как разговоры, сообщения, пользователи, блоки и поверхности. Поскольку это важная часть SDK, от нее зависят все остальные модули. |
com.slack.api:slack-api-модель-kotlin-расширение | Он содержит конструктор Block Kit Kotlin DSL, который позволяет определять структуры набора блоков с помощью собственного DSL Kotlin. |
com.slack.api:slack-api-клиент | Это коллекция клиентов Slack API. Поддерживаются следующие методы базового API, режим сокетов, API RTM (обмен сообщениями в реальном времени), API SCIM, API журналов аудита и API состояния. |
com.slack.api:slack-api-client-kotlin-расширение | Он содержит методы расширения для различных построителей сообщений клиентов Slack, поэтому вы можете легко использовать Block Kit Kotlin DSL непосредственно в построителях сообщений Java. |
com.slack.api:slack-app-backend | Этот модуль представляет собой набор серверных обработчиков приложений Slack и классов данных для API событий, интерактивных компонентов, косых команд, действий и потока OAuth. Они используются фреймворком Bolt в качестве основы в примитивных слоях. |
SDK поддерживает OpenJDK 8 и более поздние версии LTS .
Пользователи могут ожидать, что каждый выпуск исправлений будет выпущен после проверки функциональности путем запуска базовых сборок CI со всеми версиями LTS и прохождения всех модульных тестов, по крайней мере, для последней версии LTS. Мы не проводим комплексные проверки для всех дистрибутивов OpenJDK, но он должен работать со всеми из них.
Если вы застряли, мы здесь, чтобы помочь. Ниже приведены лучшие способы получить помощь в решении вашей проблемы:
Проект jSlack перенесен в @slackapi. Выпуски обслуживания jSlack для устранения проблем безопасности или крупных исправлений будут продолжены по адресу https://github.com/seratch/jslack-maintenance-releases.
Мы приветствуем вклад от каждого! Пожалуйста, ознакомьтесь с нашим Руководством для участников, чтобы узнать, как внести свой вклад полезным и совместным способом.