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..0c86dda --- /dev/null +++ b/methods/src/main/java/canvases/CanvasesCreate.java @@ -0,0 +1,33 @@ +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()) + .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..3c14d18 --- /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("F1234ABCD") + .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 + } +}