All Projects → slackapi → Java Slack Sdk

slackapi / Java Slack Sdk

Licence: mit
Slack Developer Kit (including Bolt for Java) for any JVM language

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects

Projects that are alternatives of or similar to Java Slack Sdk

Bolt Python
A framework to build Slack apps using Python
Stars: ✭ 190 (-51.65%)
Mutual labels:  chatbot, slack-api, slack, websocket, websockets, websocket-client
Slacker
Slack Bot Framework
Stars: ✭ 495 (+25.95%)
Mutual labels:  chatbot, slack-bot, slack-api, slack
Python Slack Sdk
Slack Developer Kit for Python
Stars: ✭ 3,307 (+741.48%)
Mutual labels:  slack, websocket, websockets, websocket-client
Node Slack Sdk
Slack Developer Kit for Node.js
Stars: ✭ 2,988 (+660.31%)
Mutual labels:  slack, websocket, websockets, websocket-client
Bolt Js
A framework to build Slack apps using JavaScript
Stars: ✭ 1,971 (+401.53%)
Mutual labels:  slack, websocket, websockets, websocket-client
Beast
HTTP and WebSocket built on Boost.Asio in C++11
Stars: ✭ 3,241 (+724.68%)
Mutual labels:  websocket, websockets, websocket-client
Slack Block Builder
Lightweight, no-dependency JavaScript library for creating Slack Block Kit UIs, with a builder syntax, inspired by SwiftUI.
Stars: ✭ 129 (-67.18%)
Mutual labels:  slack-bot, slack-api, slack
Websocket Client
🔧 .NET/C# websocket client library
Stars: ✭ 297 (-24.43%)
Mutual labels:  websocket, websockets, websocket-client
Botonomous
A PHP Framework For Creating Autonomous Slack Bots
Stars: ✭ 109 (-72.26%)
Mutual labels:  chatbot, slack-bot, slack
Websockets
Library for building WebSocket servers and clients in Python
Stars: ✭ 3,724 (+847.58%)
Mutual labels:  websocket, websockets, websocket-client
slackblocks
🎲 Python API for Building Messages Using the Slack Block Kit API
Stars: ✭ 32 (-91.86%)
Mutual labels:  slack, slack-bot, slack-api
Slack Machine
A sexy, simple, yet powerful and extendable Slack bot
Stars: ✭ 91 (-76.84%)
Mutual labels:  slack-bot, slack-api, slack
Chatskills
Run and debug Alexa skills on the command-line. Create bots. Run them in Slack. Run them anywhere!
Stars: ✭ 171 (-56.49%)
Mutual labels:  chatbot, slack-bot, slack
Sactive Bot
😈 An extensible chat bot framework. sactive-bot is an evolution of the open source hubot project. - https://www.shipengqi.top/sactive-bot .
Stars: ✭ 212 (-46.06%)
Mutual labels:  chatbot, slack-bot, slack
Slack Ruby Client
A Ruby and command-line client for the Slack Web, Real Time Messaging and Event APIs.
Stars: ✭ 957 (+143.51%)
Mutual labels:  slack-bot, slack-api, slack
Slack Cli
Powerful Slack CLI via pure bash. Rich messaging, uploads, posts, piping, oh my!
Stars: ✭ 850 (+116.28%)
Mutual labels:  slack-bot, slack-api, slack
Websocket Client
WebSocket client for Python
Stars: ✭ 2,810 (+615.01%)
Mutual labels:  websocket, websockets, websocket-client
dienstplan
Slack bot app for duty rotations
Stars: ✭ 14 (-96.44%)
Mutual labels:  slack, slack-bot, slack-api
Fantasy football chat bot
GroupMe Discord and Slack Chatbot for ESPN Fantasy Football
Stars: ✭ 166 (-57.76%)
Mutual labels:  chatbot, slack-bot, slack
Awesome Bots
The most awesome list about bots ⭐️🤖
Stars: ✭ 2,864 (+628.75%)
Mutual labels:  chatbot, slack-bot, slack

Slack SDK for Java

Maven Central CI Build codecov

Slack SDK for Java supports the Slack platform in a Java idiomatic way. The SDK written in Java so developers can use it in any JVM language including Kotlin, Groovy, and Scala.

Within the SDK, there are two different modules:

  • Bolt for Java, which is a framework with a simple API that makes it easy to write modern Slack apps in Java.
  • Slack API Client, for when you need a more customized approach to building a Slack app in Java.

If what you want to do is call Slack APIs in your existing services, we recommend using only the Slack API Client. If instead, you’re developing a new modern and interactive Slack app, we recommend Bolt for it. The framework enables developers to focus on the essential parts of their apps without being bothered by trifles.

Bolt for Java

Bolt for Java is a framework on the JVM that offers an abstraction layer to build Slack apps quickly using modern platform features. Refer to Getting Started with Bolt for detailed instructions.

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("👋 Hello!");
    });

    SlackAppServer server = new SlackAppServer(app);
    server.start(); // http://localhost:3000/slack/events
  }
}

For Socket Mode enabled apps, Getting Started with Bolt (Socket Mode) is available.

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("👋 Hello!");
    });

    // SocketModeApp expects an env variable: SLACK_APP_TOKEN
    new SocketModeApp(app).start();
  }
}

Slack API Client

slack-api-client contains simple, easy-to-use, and flexibly configurable HTTP clients for making requests to Slack APIs. Refer to API Client Basics for details.

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("👋 Hi from a bot written in Java!"));

Modules

The table below shows all the available modules in the Slack Java SDK. All of them have the same latest version as we release all at the same time, even in the case that some don't have any changes apart from updates on their dependency side.

All released versions are available on the Maven Central repositories. The latest version is {{ site.sdkLatestVersion }}.

Bolt & Built-in Extensions

groupId:artifactId Description
com.slack.api:bolt Bolt is a framework that offers an abstraction layer to build Slack apps safely and quickly. The most commonly used Servlet environment is supported out-of-the-box.
com.slack.api:bolt-socket-mode This module offers a handy way to run Bolt apps through Socket Mode connections.
com.slack.api:bolt-jetty This module offers a handy way to run Bolt apps on the Jetty HTTP server.
com.slack.api:bolt-aws-lambda This module offers a handy way to run Bolt apps on AWS API Gateway + Lambda.
com.slack.api:bolt-google-cloud-functions This module offers a handy way to run Bolt apps on Google Cloud Functions.
com.slack.api:bolt-micronaut This is an adapter for Micronaut to run Bolt apps on top of it.
com.slack.api:bolt-helidon This is an adapter for Helidon SE to run Bolt apps on top of it.
com.slack.api:bolt-http4k This is an adapter for http4k to run Bolt apps on top of any of the multiple server backends that the library supports.
com.slack.api:bolt-ktor This is an adapter for Ktor to run Bolt apps on top of it.

Foundation Modules

groupId:artifactId Description
com.slack.api:slack-api-model This is a collection of the classes representing the Slack core objects such as conversations, messages, users, blocks, and surfaces. As this is an essential part of the SDK, all other modules depend on this.
com.slack.api:slack-api-model-kotlin-extension This contains the Block Kit Kotlin DSL builder, which allows you to define block kit structures via a Kotlin-native DSL.
com.slack.api:slack-api-client This is a collection of the Slack API clients. The supported are Basic API Methods, RTM (Real Time Messaging) API, SCIM API, Audit Logs API, and Status API.
com.slack.api:slack-api-client-kotlin-extension This contains extension methods for various slack client message builders so you can seamlessly use the Block Kit Kotlin DSL directly on the Java message builders.
com.slack.api:slack-app-backend This module is a set of Slack app server-side handlers and data classes for Events API, Interactive Components, Slash Commands, Actions, and OAuth flow. These are used by Bolt framework as the foundation of it in primitive layers.

Requirements

The SDK supports OpenJDK 8 and higher LTS versions.

Users can expect every single patch release has been done after verifying functionality by running the basic CI builds with all LTS versions and all the unit tests have passed at least on the latest LTS version. We don't run comprehensive verifications with all OpenJDK distributions but it should be working with all of them.

Getting Help

If you get stuck, we’re here to help. The following are the best ways to get assistance working through your issue:

Important Notice for jSlack users

The jSlack project has been transferred to @slackapi. The jSlack maintenance releases for security issues or major bugfixes will be continued at https://github.com/seratch/jslack-maintenance-releases .

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].