diff --git a/methods/README.md b/methods/README.md index a60fc01..2f4491a 100644 --- a/methods/README.md +++ b/methods/README.md @@ -43,3 +43,7 @@ $ mvn compile exec:java -Dexec.mainClass=chat.ChatPostMessage # Make the reques - **[chat.postMessage](https://docs.slack.dev/reference/methods/chat.postmessage)**: Sends a message to a channel. [Implementation](./src/main/java/chat/ChatPostMessage.java). +### slackbot + +- **[slackbot.skills.create](https://docs.slack.dev/reference/methods/slackbot.skills.create)**: Creates a skill from markdown instructions, or turns an existing canvas the caller owns into a skill. [Implementation](./src/main/java/slackbot/skills/SlackbotSkillsCreate.java). + diff --git a/methods/src/main/java/slackbot/skills/SlackbotSkillsCreate.java b/methods/src/main/java/slackbot/skills/SlackbotSkillsCreate.java new file mode 100644 index 0000000..86c79fe --- /dev/null +++ b/methods/src/main/java/slackbot/skills/SlackbotSkillsCreate.java @@ -0,0 +1,39 @@ +package slackbot.skills; + +import com.slack.api.Slack; +import com.slack.api.methods.MethodsClient; +import com.slack.api.methods.SlackApiException; +import com.slack.api.methods.request.slackbot.skills.SlackbotSkillsCreateRequest; +import com.slack.api.methods.response.slackbot.skills.SlackbotSkillsCreateResponse; +import com.slack.api.model.slackbot.SkillMcpServer; +import java.io.IOException; +import java.util.Arrays; + +public class SlackbotSkillsCreate { + + 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 slackbot.skills.create method + SlackbotSkillsCreateRequest request = SlackbotSkillsCreateRequest.builder() + .displayName("Daily priorities") + .instructions("# Purpose\nSuggest the three most important things to work on today.") + .description("Reviews information from Slack and your calendar to suggest priorities for the day.") + .category("productivity") + .examplePrompt("Run {skill} for today") + .mcpServers(Arrays.asList(SkillMcpServer.builder() + .serviceType("app") + .appId("A0123ABCD") + .serverId("Amcp0456EFGH") + .build())) + .build(); + SlackbotSkillsCreateResponse response = methods.slackbotSkillsCreate(request); + + // Inspect the response + System.out.println(response); + } +} diff --git a/methods/src/main/java/slackbot/skills/manifest.json b/methods/src/main/java/slackbot/skills/manifest.json new file mode 100644 index 0000000..5314b20 --- /dev/null +++ b/methods/src/main/java/slackbot/skills/manifest.json @@ -0,0 +1,23 @@ +{ + "display_information": { + "name": "Slack API Methods", + "description": "Example implementations to call \"slackbot.skills\" methods" + }, + "features": { + "bot_user": { + "display_name": "Slack API Methods", + "always_online": true + } + }, + "oauth_config": { + "scopes": { + "bot": ["skills:read", "skills:write"], + "user": ["skills:read", "skills:write"] + } + }, + "settings": { + "org_deploy_enabled": true, + "socket_mode_enabled": true, + "token_rotation_enabled": false + } +}