From a56b2f9be0a37d7fa740fdef31f35b650f0a6018 Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Wed, 28 Oct 2026 09:30:56 -0700 Subject: [PATCH 1/2] feat(methods): add canvases.create and canvases.getContent examples --- methods/README.md | 5 +++ .../main/java/canvases/CanvasesCreate.java | 34 +++++++++++++++++++ .../java/canvases/CanvasesGetContent.java | 29 ++++++++++++++++ methods/src/main/java/canvases/manifest.json | 22 ++++++++++++ 4 files changed, 90 insertions(+) create mode 100644 methods/src/main/java/canvases/CanvasesCreate.java create mode 100644 methods/src/main/java/canvases/CanvasesGetContent.java create mode 100644 methods/src/main/java/canvases/manifest.json diff --git a/methods/README.md b/methods/README.md index 8171846..a60fc01 100644 --- a/methods/README.md +++ b/methods/README.md @@ -34,6 +34,11 @@ $ mvn compile exec:java -Dexec.mainClass=chat.ChatPostMessage # Make the reques - **[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). +### canvases + +- **[canvases.create](https://docs.slack.dev/reference/methods/canvases.create)**: Create canvas for a user. [Implementation](./src/main/java/canvases/CanvasesCreate.java). +- **[canvases.getContent](https://docs.slack.dev/reference/methods/canvases.getContent)**: Get the content of a canvas as markdown (default) or HTML. [Implementation](./src/main/java/canvases/CanvasesGetContent.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/canvases/CanvasesCreate.java b/methods/src/main/java/canvases/CanvasesCreate.java new file mode 100644 index 0000000..58ee186 --- /dev/null +++ b/methods/src/main/java/canvases/CanvasesCreate.java @@ -0,0 +1,34 @@ +package canvases; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.canvases.CanvasesCreateRequest; +import com.slack.api.methods.response.canvases.CanvasesCreateResponse; +import com.slack.api.model.canvas.CanvasDocumentContent; +import java.io.IOException; + +public class CanvasesCreate { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the canvases.create method + CanvasesCreateRequest request = CanvasesCreateRequest.builder() + .title("Your Brilliant Title") + .documentContent(CanvasDocumentContent.builder() + .type("markdown") + .markdown("> standalone canvas!") + .build()) + .channelId("C0123456789") + .build(); + CanvasesCreateResponse response = methods.canvasesCreate(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/canvases/CanvasesGetContent.java b/methods/src/main/java/canvases/CanvasesGetContent.java new file mode 100644 index 0000000..2c1816c --- /dev/null +++ b/methods/src/main/java/canvases/CanvasesGetContent.java @@ -0,0 +1,29 @@ +package canvases; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.canvases.CanvasesGetContentRequest; +import com.slack.api.methods.response.canvases.CanvasesGetContentResponse; +import java.io.IOException; + +public class CanvasesGetContent { + + public static void main(String[] args) throws IOException, SlackApiException { + // Read a token from an environment variable + String token = System.getenv("SLACK_TOKEN"); + + // Initialize + MethodsClient methods = Slack.getInstance().methods(token); + + // Call the canvases.getContent method + CanvasesGetContentRequest request = CanvasesGetContentRequest.builder() + .canvasId("F1234567890") + .contentType("markdown") + .build(); + CanvasesGetContentResponse response = methods.canvasesGetContent(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/canvases/manifest.json b/methods/src/main/java/canvases/manifest.json new file mode 100644 index 0000000..9e56919 --- /dev/null +++ b/methods/src/main/java/canvases/manifest.json @@ -0,0 +1,22 @@ +{ + "display_information": { + "name": "Slack API Methods", + "description": "Example implementations to call \"canvases\" methods" + }, + "features": { + "bot_user": { + "display_name": "Slack API Methods", + "always_online": true + } + }, + "oauth_config": { + "scopes": { + "bot": ["canvases:read", "canvases:write"] + } + }, + "settings": { + "org_deploy_enabled": true, + "socket_mode_enabled": false, + "token_rotation_enabled": false + } +} From 0d2ef68d12d747db5b8de5088c5cda2bfeb19e35 Mon Sep 17 00:00:00 2001 From: Eden Zimbelman Date: Wed, 28 Oct 2026 09:47:16 -0700 Subject: [PATCH 2/2] fix(methods): match canvases examples to the docs payload --- methods/src/main/java/canvases/CanvasesCreate.java | 1 - methods/src/main/java/canvases/CanvasesGetContent.java | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/methods/src/main/java/canvases/CanvasesCreate.java b/methods/src/main/java/canvases/CanvasesCreate.java index 58ee186..0c86dda 100644 --- a/methods/src/main/java/canvases/CanvasesCreate.java +++ b/methods/src/main/java/canvases/CanvasesCreate.java @@ -24,7 +24,6 @@ public static void main(String[] args) throws IOException, SlackApiException { .type("markdown") .markdown("> standalone canvas!") .build()) - .channelId("C0123456789") .build(); CanvasesCreateResponse response = methods.canvasesCreate(request); diff --git a/methods/src/main/java/canvases/CanvasesGetContent.java b/methods/src/main/java/canvases/CanvasesGetContent.java index 2c1816c..3c14d18 100644 --- a/methods/src/main/java/canvases/CanvasesGetContent.java +++ b/methods/src/main/java/canvases/CanvasesGetContent.java @@ -18,7 +18,7 @@ public static void main(String[] args) throws IOException, SlackApiException { // Call the canvases.getContent method CanvasesGetContentRequest request = CanvasesGetContentRequest.builder() - .canvasId("F1234567890") + .canvasId("F1234ABCD") .contentType("markdown") .build(); CanvasesGetContentResponse response = methods.canvasesGetContent(request);