关于 slack
此技能通过 Bun 调用 Slack REST API 来处理 Slack 数据,涵盖读取和搜索消息、管理文件、查看工作区信息及发送消息,并检查令牌和权限范围。
主要功能
- 01使用 Bun 调用 Slack Web API
- 02读取和搜索 Slack 数据
- 03发送消息并处理文件
- 04查看用户、频道和团队
- 05检查令牌、权限范围和分页
适用场景
- 01搜索或总结 Slack 对话
- 02向指定频道发送消息
- 03上传或检查 Slack 文件
- 04构建或调试 Slack API 自动化
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ superwall/ agent-skills --skill slack安装后在 Claude Code 中输入/slack确认已加载。
详细介绍
slack
当任务需要读取 Slack、向 Slack 发布内容、上传或下载 Slack 文件、检查 Slack 用户/频道/工作区,或以其他方式与 Slack 数据交互时,请使用此技能。
适用场景
- 用户要求读取、搜索、总结或检查 Slack 频道、群组、提及、消息、用户、工作区或文件。
- 用户要求发送、起草或发布 Slack 消息。
- 用户要求上传、获取或检查 Slack 文件。
- 用户要求构建或调试应使用 Slack REST API 的 Slack 自动化。
指令
直接通过 Bun 使用 Slack REST API。
-
在调用 Slack API 前,检查环境中是否存在
SLACK_BOT_TOKEN。- 如果
SLACK_BOT_TOKEN缺失或为空,请停止操作,并告知用户前往 https://superwall.ai/integrations 设置 Slack。 - 不要要求用户在聊天中粘贴令牌。
- 如果
-
使用 Bun 内置的
fetch调用 Slack Web API 端点。- 使用
Authorization: Bearer ${process.env.SLACK_BOT_TOKEN}发送令牌。 - 除非端点要求使用 multipart form data,否则使用
Content-Type: application/json; charset=utf-8发送 JSON 请求。 - 同时检查 HTTP 状态和 Slack JSON 中的
ok字段。 - 报告 Slack API 错误时,注明方法名和
error值。
- 使用
-
优先使用简短且针对具体任务的 Bun 脚本处理 Slack 操作。
const token = process.env.SLACK_BOT_TOKEN;
if (!token) {
throw new Error(
"SLACK_BOT_TOKEN is not set. Set up Slack at https://superwall.ai/integrations."
);
}
async function slack(method: string, body: Record<string, unknown> = {}) {
const response = await fetch(`https://slack.com/api/${method}`, {
method: "POST",
headers: {
authorization: `Bearer ${token}`,
"content-type": "application/json; charset=utf-8",
},
body: JSON.stringify(body),
});
const data = await response.json();
if (!response.ok || !data.ok) {
throw new Error(`${method} failed: ${data.error ?? response.statusText}`);
}
return data;
}
-
如果响应中包含
response_metadata.next_cursor,请使用 Slack 游标分页。- 读取时使用适中的页面大小。
- 当
next_cursor缺失或为空时停止。
-
至少假定以下 bot 作用域可用:
{
"scopes": {
"bot": [
"app_mentions:read",
"channels:read",
"channels:history",
"chat:write",
"chat:write.public",
"files:write",
"files:read",
"team:read",
"users:read",
"groups:history"
]
}
}
-
以后可能会添加更多作用域。
- 如果作用域的可用性会影响操作,请先通过 Slack API 检查应用当前可用的作用域,再判断操作是否无法执行。
- 如果 API 报告缺少作用域,请明确说明 Slack 要求的具体作用域,以及需要该作用域的操作。
-
根据任务使用常见的 Slack Web API 方法:
- 使用
auth.test验证令牌并确认工作区/应用上下文。 - 使用
conversations.list列出作用域允许访问的公开频道和私有频道。 - 使用
conversations.history读取频道或群组历史记录。 - 使用
chat.postMessage发送消息。 - 使用
users.list或users.info检查用户。 - 使用
team.info检查工作区详情。 - 使用
files.uploadV2、files.info及相关文件方法处理文件。
- 使用
-
谨慎执行写入操作。
- 发送消息或上传文件时,请确认目标频道/用户和内容,除非用户已明确指定两者。
- 除非用户明确要求,否则不要删除、覆盖或广泛广播内容。
评论
支持 Markdown