O SDK do Slack para Java oferece suporte à plataforma Slack de maneira idiomática Java. O SDK escrito em Java para que os desenvolvedores possam usá-lo em qualquer linguagem JVM, incluindo Kotlin, Groovy e Scala.
Dentro do SDK, existem dois módulos diferentes:
Se o que você deseja fazer é chamar APIs do Slack em seus serviços existentes, recomendamos usar apenas o Slack API Client . Se, em vez disso, você estiver desenvolvendo um novo aplicativo Slack moderno e interativo, recomendamos o Bolt . A estrutura permite que os desenvolvedores se concentrem nas partes essenciais de seus aplicativos sem se preocuparem com ninharias.
Bolt for Java é uma estrutura na JVM que oferece uma camada de abstração para construir aplicativos Slack rapidamente usando recursos modernos da plataforma. Consulte Introdução ao Bolt para obter instruções detalhadas.
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
}
}
Para aplicativos habilitados para o modo Socket, Introdução ao Bolt (modo Socket) está disponível.
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 contém clientes HTTP simples, fáceis de usar e configuráveis de forma flexível para fazer solicitações às APIs do Slack. Consulte Noções básicas do cliente API para obter detalhes.
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!" ));
A tabela abaixo mostra todos os módulos disponíveis no Slack Java SDK. Todos eles têm a mesma versão mais recente que lançamos ao mesmo tempo, mesmo no caso de alguns não terem nenhuma alteração além das atualizações em seu lado de dependência.
Todas as versões lançadas estão disponíveis nos repositórios Maven Central. A versão mais recente é:
ID do grupo: ID do artefato | Descrição |
---|---|
com.slack.api:bolt | Bolt é uma estrutura que oferece uma camada de abstração para construir aplicativos Slack com segurança e rapidez. O ambiente Servlet mais comumente usado é compatível imediatamente. |
com.slack.api:bolt-socket-mode | Este módulo oferece uma maneira prática de executar aplicativos Bolt por meio de conexões no modo Socket. |
com.slack.api:bolt-jetty | Este módulo oferece uma maneira prática de executar aplicativos Bolt no servidor Jetty HTTP compatível com Java EE (9.x). |
com.slack.api:bolt-jakarta-jetty | Este módulo oferece uma maneira prática de executar aplicativos Bolt no servidor Jetty HTTP compatível com Jakarta EE. |
com.slack.api:bolt-aws-lambda | Este módulo oferece uma maneira prática de executar aplicativos Bolt no AWS API Gateway + Lambda. |
com.slack.api:bolt-google-cloud-functions | Este módulo oferece uma maneira prática de executar aplicativos Bolt no Google Cloud Functions. |
com.slack.api:bolt-micronauta | Este é um adaptador para o Micronaut executar aplicativos Bolt em cima dele. |
com.slack.api:bolt-helidon | Este é um adaptador para o Helidon SE rodar aplicativos Bolt nele. |
com.slack.api:bolt-http4k | Este é um adaptador para http4k para executar aplicativos Bolt em qualquer um dos vários back-ends de servidor suportados pela biblioteca. |
com.slack.api:bolt-ktor | Este é um adaptador para o Ktor executar aplicativos Bolt nele. |
ID do grupo: ID do artefato | Descrição |
---|---|
com.slack.api:slack-api-model | Esta é uma coleção de classes que representam os objetos principais do Slack, como conversas, mensagens, usuários, blocos e superfícies. Como esta é uma parte essencial do SDK, todos os outros módulos dependem disso. |
com.slack.api:slack-api-model-kotlin-extension | Ele contém o construtor Block Kit Kotlin DSL, que permite definir estruturas de kit de blocos por meio de uma DSL nativa do Kotlin. |
com.slack.api:slack-api-client | Esta é uma coleção de clientes API do Slack. Os suportados são métodos básicos de API, modo de soquete, API RTM (Real Time Messaging), API SCIM, API de logs de auditoria e API de status. |
com.slack.api:slack-api-client-kotlin-extension | Ele contém métodos de extensão para vários construtores de mensagens de cliente Slack para que você possa usar perfeitamente o Block Kit Kotlin DSL diretamente nos construtores de mensagens Java. |
com.slack.api:slack-app-backend | Este módulo é um conjunto de manipuladores de servidor de aplicativos Slack e classes de dados para API de eventos, componentes interativos, comandos de barra, ações e fluxo OAuth. Eles são usados pela estrutura Bolt como base em camadas primitivas. |
O SDK oferece suporte ao OpenJDK 8 e versões LTS superiores .
Os usuários podem esperar que cada lançamento de patch tenha sido feito após a verificação da funcionalidade, executando as compilações básicas de CI com todas as versões LTS e todos os testes de unidade foram aprovados pelo menos na versão LTS mais recente. Não executamos verificações abrangentes com todas as distribuições OpenJDK, mas deve funcionar com todas elas.
Se você ficar preso, estamos aqui para ajudar. A seguir estão as melhores maneiras de obter assistência para resolver seu problema:
O projeto jSlack foi transferido para @slackapi. As versões de manutenção do jSlack para problemas de segurança ou grandes correções de bugs continuarão em https://github.com/seratch/jslack-maintenance-releases.
Aceitamos contribuições de todos! Confira nosso Guia do Colaborador para saber como contribuir de forma útil e colaborativa.