From 07af47e9ac44a2c89688f596bcf5251f8d0d7e5d Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Fri, 14 Aug 2026 18:49:18 -0700 Subject: [PATCH 1/2] feat(methods): add blocks.validate example Add a "blocks" method-family example mirroring the existing "chat" example: BlocksValidate.java validates a well-formed and a malformed Block Kit payload and prints each response, plus its own manifest and a "What's on call" README entry. blocks.validate is unauthenticated, so the example calls it without a token. Co-Authored-By: Claude --- methods/README.md | 4 +++ .../src/main/java/blocks/BlocksValidate.java | 32 +++++++++++++++++++ methods/src/main/java/blocks/manifest.json | 22 +++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 methods/src/main/java/blocks/BlocksValidate.java create mode 100644 methods/src/main/java/blocks/manifest.json diff --git a/methods/README.md b/methods/README.md index 1bd5d8e..1f47e78 100644 --- a/methods/README.md +++ b/methods/README.md @@ -16,6 +16,10 @@ $ mvn compile exec:java -Dexec.mainClass=chat.ChatPostMessage # Make the reques ## What's on call +### blocks + +- **[blocks.validate](https://docs.slack.dev/reference/methods/blocks.validate)**: Validates blocks, messages, and views Block Kit JSON payloads. [Implementation](./src/main/java/blocks/BlocksValidate.java). + ### chat - **[chat.postMessage](https://docs.slack.dev/reference/methods/chat.postmessage)**: Sends a message to a channel. [Implementation](./src/main/java/chat/ChatPostMessage.java). diff --git a/methods/src/main/java/blocks/BlocksValidate.java b/methods/src/main/java/blocks/BlocksValidate.java new file mode 100644 index 0000000..81bbe7f --- /dev/null +++ b/methods/src/main/java/blocks/BlocksValidate.java @@ -0,0 +1,32 @@ +package blocks; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.blocks.BlocksValidateRequest; +import com.slack.api.methods.response.blocks.BlocksValidateResponse; +import java.io.IOException; + +public class BlocksValidate { + + public static void main(String[] args) throws IOException, SlackApiException { + // Initialize + MethodsClient methods = Slack.getInstance().methods(); + + // Call blocks.validate with a well-formed payload + String validBlocks = "[{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"Hello\"}}]"; + BlocksValidateResponse valid = methods.blocksValidate( + BlocksValidateRequest.builder().blocks(validBlocks).build()); + + // Inspect the response + System.out.println(valid); + + // Call blocks.validate with a malformed payload + String invalidBlocks = "[{\"type\":\"section\"}]"; + BlocksValidateResponse invalid = methods.blocksValidate( + BlocksValidateRequest.builder().blocks(invalidBlocks).build()); + + // Inspect the response + System.out.println(invalid); + } +} diff --git a/methods/src/main/java/blocks/manifest.json b/methods/src/main/java/blocks/manifest.json new file mode 100644 index 0000000..0c294dd --- /dev/null +++ b/methods/src/main/java/blocks/manifest.json @@ -0,0 +1,22 @@ +{ + "display_information": { + "name": "Slack API Methods", + "description": "Example implementations to call \"blocks\" methods" + }, + "features": { + "bot_user": { + "display_name": "Slack API Methods", + "always_online": true + } + }, + "oauth_config": { + "scopes": { + "bot": [] + } + }, + "settings": { + "org_deploy_enabled": true, + "socket_mode_enabled": false, + "token_rotation_enabled": false + } +} From 42dd5a4e8841a28446653b65763847e19ab37507 Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Fri, 14 Aug 2026 19:01:56 -0700 Subject: [PATCH 2/2] refactor(methods): use a single blocks.validate call in the example Match the chat example's one-call shape: build one request with a single well-formed blocks payload and print the response, rather than demonstrating multiple calls. Co-Authored-By: Claude --- .../src/main/java/blocks/BlocksValidate.java | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/methods/src/main/java/blocks/BlocksValidate.java b/methods/src/main/java/blocks/BlocksValidate.java index 81bbe7f..e7d4f03 100644 --- a/methods/src/main/java/blocks/BlocksValidate.java +++ b/methods/src/main/java/blocks/BlocksValidate.java @@ -13,20 +13,13 @@ public static void main(String[] args) throws IOException, SlackApiException { // Initialize MethodsClient methods = Slack.getInstance().methods(); - // Call blocks.validate with a well-formed payload - String validBlocks = "[{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"Hello\"}}]"; - BlocksValidateResponse valid = methods.blocksValidate( - BlocksValidateRequest.builder().blocks(validBlocks).build()); + // Call the blocks.validate method + String blocks = "[{\"type\": \"section\", \"text\": {\"type\": \"plain_text\", \"text\": \"Hello world\"}}]"; + BlocksValidateRequest request = + BlocksValidateRequest.builder().blocks(blocks).build(); + BlocksValidateResponse response = methods.blocksValidate(request); // Inspect the response - System.out.println(valid); - - // Call blocks.validate with a malformed payload - String invalidBlocks = "[{\"type\":\"section\"}]"; - BlocksValidateResponse invalid = methods.blocksValidate( - BlocksValidateRequest.builder().blocks(invalidBlocks).build()); - - // Inspect the response - System.out.println(invalid); + System.out.println(response); } }