Skip to content

Releases: slackapi/java-slack-sdk

version 1.1.4

11 Sep 02:30
Compare
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
Compare
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
Compare
Choose a tag to compare

Changes


version 1.1.1

28 Jul 03:43
Compare
Choose a tag to compare

Changes


version 1.1.0

14 Jul 05:12
27c0361
Compare
Choose a tag to compare

New Features

Block Kit Kotlin DSL

Block Kit Kotlin DSL is a huge addition since this release. The new optional modules enable Kotlin developers to use much smoother and more intuitive DSLs for constructing rich messages, modal views, and Home tabs. Refer to the document pages and examples in the repository for details.

import com.slack.api.Slack
import com.slack.api.model.block.Blocks.*
import com.slack.api.model.kotlin_extension.request.chat.blocks

val slack = Slack.getInstance()
val token = System.getenv("SLACK_BOT_TOKEN")
val response = slack.methods(token).chatPostMessage { it
  .channel("C1234567")
  .blocks {
    section {
      // "text" fields can be constructed via plainText() and markdownText()
      markdownText("*Please select a restaurant:*")
    }
    divider()
    actions {
      // To align with the JSON structure, you could put the elements { } block around the buttons but for brevity it can be omitted
      // The same is true for things such as the section block's "accessory" container
      button {
        // For instances where only plain text is acceptable, the field's name can be filled with plain text inputs
        text("Farmhouse", emoji = true)
        value("farmhouse")
      }
      button {
        text("Kin Khao", emoji = true)
        value("kin-khao")
      }
    }
  }
}

Related issues/PRs: #428 #469 #501 #503 #504 #513

http.proxyHost / http.proxyPort support in all Slack API clients

In v1.0.x versions, slack-api-client users have to manually extract http.proxyHost and http.proxyPort from system properties, concatenate those into a single string value, and then call SlackConfig#setProxyUrl(String) with the generated URL.

As those system properties are the standard ones, SlackConfig started supporting them out-of-the-box since v1.1.0. It works this way: 1) automatically read them, 2) build the proxy URL that consists of the value, and set it as the default value of proxyUrl when the properties exist.

In the case a developer explicitly gives a proxyUrl value, the URL must be prioritized over the host + port in system properties.

Related issues/PRs: #500 #499

Short-time cache for Bolt authorization

Bolt for Java used to excessively call auth.test every time the app receives an incoming request from the Slack API server. I
t's the safest way to always ensure if the underlying token is valid but it can be a not-small overhead for the app's response time. We've introduced the following options to enable Bolt apps to have a short-time cache for the auth.test API calls.

  • AppConfig#authTestCacheEnabled (default: false)
  • AppConfig#authTestCacheExpirationMillis (default: 3000)

The default behavior won't be changed. Only when a Bolt app turns the flag on, the cache will be enabled.

The cache layer doesn't support distributed cache implementations (e.g., the ones using Memcached, Redis) by design. As mentioned in #468, the purpose of this cache is to reduce the number of auth.test API calls in Bolt apps that tend to receive lots of incoming requests from Slack in a short time of period.

Related issues/PRs: #502 #468

A bunch of new APIs

As of July 13, the slack-api-client module supports all the public Web APIs.

  • admin.usergroups.addTeams
  • admin.conversations.restrictAccess.*
  • calls.participants.remove
  • conversations.mark

Changes

  • [kotlin-extension] #428 #469 #501 #503 #504 #513 Add Kotlin DSL modules for constructing Block Kit payloads - thanks @emanguy @seratch
  • [bolt] #502 #468 short-time cache for authorization middleware - thanks @eamelink @seratch
  • [slack-api-client] #508 Bump okhttp version from 4.7.2 to 4.8.0 - thanks @seratch
  • [slack-api-client] #500 #499 Add proxy system properties support (http.proxyHost / http.proxyPort) - thanks @seratch
  • [slack-api-client] #512 Redact authorization header from debug logging outputs - thanks @seratch
  • [slack-api-client] #507 Add admin.conversations.restrictAccess.* APIs - thanks @seratch
  • [slack-api-client] #509 Add conversations.mark API - thanks @seratch
  • [slack-api-client] #505 Add calls.participants.remove, admin.usergroups.addTeams API - thanks @seratch
  • [slack-app-backend] #494 #496 Add file_share message events & files in message_changed events - thanks @Hariprasad-Ramakrishnan @seratch
  • [bolt-micronaut] #508 Bump micronaut from 1.3 to 2.0 - thanks @seratch

version 1.0.11

19 Jun 06:26
Compare
Choose a tag to compare
  • [slack-app-backend] #489 #490 Fix Event type extraction failure in slack-app-backend (no effect to Bolt) - Thanks @lgrammel @seratch
  • [bolt] #491 #492 Append OAuth redirect URI to Slack OAuth URL - Thanks @timrourke

version 1.0.10

11 Jun 23:17
Compare
Choose a tag to compare
  • [slack-api-model] #477 #478 Add default_to_current_conversation in (multi_)conversations_select - Thanks @seratch
  • [slack-api-client] #487 Add admin.conversations.whitelist.* API - Thanks @seratch
  • [slack-api-client] #486 Move UsersLookupByEmailResponse to the right package (source code compatible) - Thanks @seratch
  • [slack-api-client] #480 Fix potential false detection of subtypes in RTMClient - Thanks @gaspardpetit

version 1.0.9

11 Jun 23:16
Compare
Choose a tag to compare
  • [slack-api-client] #487 Add admin.conversations.whitelist.* API - Thanks @seratch
  • [slack-api-client] #486 Move UsersLookupByEmailResponse to the right package (source code compatible) - Thanks @seratch
  • [slack-api-client] #480 Fix potential false detection of subtypes in RTMClient - Thanks @gaspardpetit

version 1.0.8

28 May 02:48
Compare
Choose a tag to compare
  • [slack-api-model] Add missing fields in objects (confirm.style in blocks, user.is_invited_user: boolean, message.hidden, Slack post related fields in file objects) - thanks @seratch
  • [slack-api-client etc] #466 #462 Calls API support - thanks @seratch
  • [slack-api-client] #475 #474 Make redirect_uri for oauth.access / oauth.v2.access optional - thanks @natevaughan @seratch
  • [slack-api-client] #476 Bump dependencies (okhttp, micronaut, tyrus-standalone-client) - thanks @seratch
  • [slack-api-client] #459 Adding ping message and pong event to RTM client - thanks @gaspardpetit
  • [slack-api-client] #451 Add support and check for the event subtypes in RTM client - thanks @gaspardpetit
  • [bolt] #455 Improve OAuth flow module to consider the cases where team is missing in oauth.v2.access responses - thanks @seratch
  • [bolt] #476 Bump dependencies (aws-java-sdk-s3) - thanks @seratch

version 1.0.7

08 May 02:13
Compare
Choose a tag to compare
  • [slack-api-client] #444 okhttp 4.4 -> 4.6 uprgrade (as it's highly recommended) - thanks @seratch
  • [slack-api-model] #441 #442 Fix Block Elements' object equality issues - thanks @eamelink
  • [slack-api-client] #445 #448 Add admin.usergroups.* API supports - thanks @seratch
  • [slack-api-model] #440 Add external data source supports for dialogs - thanks @favalos
  • [slack-api-model] #437 Update composition.OptionObject to have mrkdwn - thanks @seratch
  • [slack-api-model] Add teams[].team_url to admin.teams.list response - thanks @seratch
  • [slack-api-model] #449 Add attachement.author_id - thanks @seratch
  • [slack-app-backend] #446 Add channel_count to subteam_created / subteam_updated events - thanks @seratch
  • [slack-api-client etc] #444 #450 bump patch versions of AWS SDK, Micronaut, Jetty - thanks @seratch

All the changes in this release are: v1.0.6...v1.0.7