Skip to content

Releases: slackapi/java-slack-sdk

version 1.3.0 RC3

13 Nov 06:15

Choose a tag to compare

version 1.2.1

09 Oct 09:23

Choose a tag to compare

New Features

Dispatch Action in Block Kit

This pull request adds dispatch_action flag to input blocks and dispatch_action_config field to plain_text_input block elements.

Changes

  • [slack-api-model] #578 Add dispatch_action support in Input blocks - Thanks @seratch

version 1.2.0

06 Oct 07:06

Choose a tag to compare

New Features

Steps from Apps

Workflow Steps from apps allow your app to create and process custom workflow steps that users can add using Workflow Builder. Check the document for details: https://slack.dev/java-slack-sdk/guides/steps-from-apps

import com.slack.api.bolt.App;
import com.slack.api.bolt.middleware.builtin.WorkflowStep;

App app = new App();
WorkflowStep step = WorkflowStep.builder()
  .callbackId("copy_review")
  .edit((req, ctx) -> { return ctx.ack(); })
  .save((req, ctx) -> { return ctx.ack(); })
  .execute((req, ctx) -> { return ctx.ack(); })
  .build();
app.step(step);

If you are a Koltin developer, try the Kotlin extensions out! With the optional modules, building Workflow Steps can be even more concise!

val step = WorkflowStep.builder()
  .callbackId("copy_review")
  .edit { _, ctx ->
    ctx.configure(withBlocks {
      input {
        blockId("task_name_input")
        element {
          plainTextInput {
            actionId("task_name")
            placeholder("Write a task name")
          }
        }
        label("Task name")
      }
    })
    ctx.ack()
  }
  .save { req, ctx ->
    val values = req.payload.view.state.values
    val inputs = mapOf("taskName" to stepInput { it.value(values["task_name_input"]?.get("task_name")?.value) })
    val outputs = listOf(stepOutput { it.name("taskName").type("text").label("Task Name") })
    ctx.update(inputs, outputs)
    ctx.ack()
  }
  .executeAutoAcknowledgement(false)
  .execute { req, ctx ->
    val step = req.payload.event.workflowStep
    GlobalScope.async {
      try {
        val email = step.inputs["taskAuthorEmail"]?.value.toString()
        val outputs = mapOf("taskName" to step.inputs["taskName"]?.value)
        ctx.complete(outputs)
      } catch (e: Exception) {
        ctx.fail(mapOf("message" to "Something wrong! ($e)"))
      }
    }
    ctx.ack()
  }
  .build()

val app = App()
app.step(step)

New Events API Payload Support

Events will no longer contain full lists of authed_users or authed_teams

https://api.slack.com/changelog/2020-09-15-events-api-truncate-authed-users

Since this version, this SDK supports newly added authorizations and is_ext_shared_channel fields in Events API payloads. Also, the slack-api-client provides the method to call apps.event.authorizations.list API method for fetching the complete set of installations associated with a given event.

If you need a full list of all the parties an event is visible to, you'll call the apps.event.authorizations.list method.

Google Cloud Function extension for Bolt

A new Bolt extension is available for Google Cloud Functions users. This module requires JDK 11+.

package functions;
import com.slack.api.bolt.App;

public class HelloSlack extends SlackApiFunction {
  private static final App app = new App();
  static {
    app.command("/hi", (req, ctx) -> {
      return ctx.ack("Hi from Google Cloud Functions!");
    });
  }
  public HelloSlack() { super(app); }
}

// gcloud functions deploy my-first-function \
// --entry-point functions.HelloSlack \
// --runtime java11 --trigger-http --memory 512MB --allow-unauthenticated \
// --set-env-vars SLACK_BOT_TOKEN=$SLACK_BOT_TOKEN,SLACK_SIGNING_SECRET=$SLACK_SIGNING_SECRET

Changes

  • [bolt] #569 #571 #574 Steps from Apps support - Thanks @seratch @misscoded
  • [bolt] #572 Add appId to Installer and Bot model classes - Thanks @mihristov @seratch
  • [bolt] #573 Improve the compatibility with Bolt for JS / Python - Thanks @seratch
  • [bolt] #577 Change the fallback behavior of Events API handlers to be compatible with Bolt JS/Python - Thanks @seratch
  • [bolt-google-cloud-functions] #498 #550 Add Google Cloud Functions support - Thanks @seratch
  • [bolt-helion] Upgrade Helidon SE version from 1.4 to 2.0 - Thanks @seratch
  • [slack-app-backend] #576 Add complete support for new Events API payload format - Thanks @seratch
  • [slack-api-client] #566 #568 Stop propagation of okhttp's exception message including header values - Thanks @AlexeiZenin @seratch
  • [slack-api-client] Add new fields to Audit Logs API response - Thanks @seratch
  • [slack-api-client] Upgrade okhttp version from 4.8 to 4.9 - Thanks @seratch
  • [*-kotlin-extensions] Upgrade Kotlin language version from 1.3 to 1.4 - Thanks @seratch

version 1.2.0-RC2

05 Oct 03:04

Choose a tag to compare

version 1.2.0-RC2 Pre-release
Pre-release

Changes

  • [bolt] #569 #571 #574 Steps from Apps support - Thanks @seratch @misscoded
  • [bolt] #572 Add appId to Installer and Bot model classes - Thanks @mihristov @seratch
  • [bolt] #573 Improve the compatibility with Bolt for JS / Python - Thanks @seratch
  • [bolt] #577 Change the fallback behavior of Events API handlers to be compatible with Bolt JS/Python - Thanks @seratch
  • [bolt-google-cloud-functions] #498 #550 Add Google Cloud Functions support - Thanks @seratch
  • [bolt-helion] Upgrade Helidon SE version from 1.4 to 2.0 - Thanks @seratch
  • [slack-app-backend] #576 Add complete support for new Events API payload format - Thanks @seratch
  • [slack-api-client] #566 #568 Stop propagation of okhttp's exception message including header values - Thanks @AlexeiZenin @seratch
  • [slack-api-client] Add new fields to Audit Logs API response - Thanks @seratch
  • [slack-api-client] Upgrade okhttp version from 4.8 to 4.9 - Thanks @seratch
  • [*-kotlin-extensions] Upgrade Kotlin language version from 1.3 to 1.4 - Thanks @seratch

version 1.2.0-RC1

01 Oct 08:05

Choose a tag to compare

version 1.2.0-RC1 Pre-release
Pre-release

Changes

  • [bolt] #569 #571 #574 Steps from Apps support - Thanks @seratch @misscoded
  • [bolt] #572 Add appId to Installer and Bot model classes - Thanks @mihristov @seratch
  • [bolt] #573 Improve the compatibility with Bolt for JS / Python - Thanks @seratch
  • [bolt-google-cloud-functions] #498 #550 Add Google Cloud Functions support - Thanks @seratch
  • [bolt-helion] Upgrade Helidon SE version from 1.4 to 2.0 - Thanks @seratch
  • [slack-api-client] #566 #568 Stop propagation of okhttp's exception message including header values - Thanks @AlexeiZenin @seratch
  • [slack-api-client] Add new fields to Audit Logs API response - Thanks @seratch
  • [slack-api-client] Upgrade okhttp version from 4.8 to 4.9 - Thanks @seratch
  • [*-kotlin-extensions] Upgrade Kotlin language version from 1.3 to 1.4 - Thanks @seratch

version 1.1.6

29 Sep 07:34

Choose a tag to compare

Changes

  • [slack-api-client] #566 #568 Stop propagation of okhttp's exception message including header values - Thanks @AlexeiZenin @seratch
  • [slack-api-client] Add new fields to Audit Logs API response - Thanks @seratch

version 1.1.5

18 Sep 02:14

Choose a tag to compare

Changes

  • [bolt] #560 #563 Correct cookie parsing logic to support all use cases - Thanks @nickmelis

version 1.1.4

11 Sep 02:30

Choose a tag to compare

Changes

  • [slack-api-client] #554 #553 Add new admin.conversations.* APIs - Thanks @seratch
  • [slack-app-backend] #539 Fix #538 by adding api_app_id to SlashCommandPayload - Thanks @seratch
  • [slack-api-client] #540 Fix a typo in ChatUnfurlRequest docs - Thanks @markrmullan
  • [slack-api-client] Update data classes/constants for Web APIs and Audit Logs API - Thanks @seratch
  • [slack-api-client] #556 Add original_connected_channel_id to entry.channel in Audit Logs response - Thanks @seratch

version 1.1.3

07 Aug 00:34

Choose a tag to compare

Changes

  • [slack-api-model] #533 #534 Fails to parse CallBlock when receiving a message including a call block - Thanks @seratch
  • [slack-api-client] #535 Bump the patch versions of okhttp, micronaut, s3 client - Thanks @seratch

version 1.1.2

04 Aug 09:52

Choose a tag to compare

Changes