Install
openclaw skills install @thcjp/slack-freeopenclaw skills install @thcjp/slack-free通过 slack 工具对 Slack 工作区进行基础消息操作,涵盖发送消息与读取消息两大动作组。工具使用已配置的 Bot Token 进行认证.
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| slack 工具 | Agent 平台工具 | 必需 | Agent 平台内置或插件提供 |
| Slack Bot Token | 凭证 | 必需 | 在 Slack App 配置页面创建 Bot 并获取 xoxb- 前缀的 Token |
| Bot 权限范围 | 配置 | 必需 | 在 Slack App 配置页授予 chat:write 与 channels:read 等 scope |
/invite @botname),否则消息操作会报 not_in_channel 错误channel:<id> 或 user:<id>详细的输入输出格式请参考下方章节说明。
channel:<id> 或 user:<id>消息上下文行中包含 slack message id 与 channel 字段,可直接复用.
| 场景 | 输入 | 输出 |
|---|---|---|
| 发送通知消息 | 目标频道 channelId 与通知文本 | 频道收到通知消息 |
| 查询频道历史 | 频道 channelId 与读取数量 | 返回最近 N 条消息内容与发送者信息 |
不适用于: 需要消息回应(reactions)的场景(需升级付费版);需要置顶管理(pins)的场景(需升级付费版);需要编辑或删除消息的场景(需升级付费版).
{
"action": "sendMessage",
"to": "channel:C123",
"content": "周报已更新,请查看"
}
{
"action": "readMessages",
"channelId": "C123",
"limit": 20
}
场景: 向开发频道发送版本发布通知,告知团队上线时间
操作:
{
"action": "sendMessage",
"to": "channel:C0LPBBKMQ",
"content": "v2.3.0 版本即将发布,预计今日 18:00 上线,请各位关注发布窗口"
}
返回结果:
{
"ok": true,
"message": {
"ts": "1712023500.5678",
"text": "v2.3.0 版本即将发布,预计今日 18:00 上线,请各位关注发布窗口"
}
}
分析: sendMessage 向指定频道发送文本通知,返回的 ts 字段为消息时间戳。to 字段用 channel: 前缀加 channelId 指定目标频道。Bot 需已加入该频道,否则会报 not_in_channel 错误.
场景: 需要了解开发频道最近的讨论内容,获取最近 10 条消息
操作:
{
"action": "readMessages",
"channelId": "C0LPBBKMQ",
"limit": 10
}
返回结果:
{
"messages": [
{
"ts": "1712023032.1234",
"text": "这个 bug 我已经修复了",
"user": "U0ABC"
},
{
"ts": "1712023100.2345",
"text": "感谢,我来验证一下",
"user": "U0DEF"
}
]
}
分析: readMessages 返回指定频道最近 N 条消息,每条含文本、发送者 userId 与时间戳。limit 参数控制返回数量。返回的 ts 与 user 字段可用于后续引用或操作.
| 错误场景 | 错误现象 | 原因分析 | 处理方式 |
|---|---|---|---|
| channelId 无效 | 返回 {"ok": false, "error": "channel_not_found"} | channelId 拼写错误或频道不存在 | 核对 channelId 格式(C 开头),在 Slack 频道详情中确认正确 ID |
| Bot 未加入频道 | 返回 {"ok": false, "error": "not_in_channel"} | Bot 未被邀请加入目标频道 | 在频道中执行 /invite @botname 邀请 Bot 加入 |
| 权限不足 | 返回 {"ok": false, "error": "missing_scope"} | Bot Token 未授予 chat:write 或 channels:read scope | 在 Slack App 配置页授予对应 scope 后重新安装 App |
| 消息内容为空 | 返回 {"ok": false, "error": "no_text"} | sendMessage 的 content 字段为空字符串 | 确保 content 字段含至少一个非空白字符 |
| Bot Token 无效 | 返回 {"ok": false, "error": "invalid_auth"} | Bot Token 过期或已被撤销 | 在 Slack App 配置页重新生成 Bot Token,更新 Agent 平台配置 |
A: 在 Slack 客户端中,右键点击频道名称选择「查看频道详情」,channelId 显示在详情页底部或 URL 中,格式为 C 开头的字符串(如 C0LPBBKMQ)。也可通过 readMessages 读取消息时从返回结果的 channel 字段获取.
A: to 字段支持两种格式。发到频道用 channel:<channelId>(如 channel:C0LPBBKMQ),Bot 需已加入该频道。发给个人用 user:<userId>(如 user:U0ABC),Bot 需与该用户有过对话历史。两种格式的前缀(channel: 或 user:)不可省略.
A: Bot 不能自行加入频道,需由频道成员邀请。在频道中执行 /invite @botname 即可邀请 Bot。Bot 加入频道后才能执行 sendMessage 与 readMessages 等操作,否则会报 not_in_channel 错误.
A: 免费版(LITE)包含发送消息(sendMessage)与读取消息(readMessages)两大基础功能。付费版(Slack 消息管理)额外提供:
| 操作步骤 | 手动耗时 | 自动化耗时 | 时间节约 | 准确率提升 |
|---|---|---|---|---|
| 发送通知消息 | 5分钟 | 1分钟 | 4分钟 | 100% |
| 查询频道历史 | 10分钟 | 2分钟 | 8分钟 | 100% |
| 管理消息置顶 | 20分钟 | 5分钟 | 15分钟 | 100% |
| 查询成员信息 | 5分钟 | 1分钟 | 4分钟 | 100% |
| 编辑消息内容 | 10分钟 | 2分钟 | 8分钟 | 100% |
| 对比维度 | 本技能 | 手动操作 | Python脚本 | 专业软件 |
|---|---|---|---|---|
| 易用性 | 高 | 低 | 中 | 高 |
| 成本 | 低 | 高 | 中 | 高 |
| 速度 | 快 | 慢 | 中 | 快 |
| 功能丰富性 | 基础 | 有限 | 有限 | 全面 |
| 安全性 | 高 | 低 | 中 | 高 |
| 痛点 | 描述 | 影响范围 | 解决方案 | 量化效果 |
|---|---|---|---|---|
| 重复劳动 | 每次发送消息都需要手动操作,效率低下 | 影响工作效率 | 自动化发送消息 | 时间节约 80% |
| 消息管理困难 | 查询历史消息困难,难以跟踪讨论 | 影响沟通效率 | 自动化查询历史消息 | 查询效率提升 100% |
| 消息格式不统一 | 手动发送消息格式不统一,影响阅读体验 | 影响团队协作 | 自动化格式化消息 | 格式统一率 100% |
| 错误现象 | 可能原因 | 诊断步骤 | 解决方案 |
|---|---|---|---|
| 消息发送失败 | Bot Token 无效或权限不足 | 检查 Bot Token 是否有效,Bot 权限是否正确配置 | 重新配置 Bot Token 或权限 |
| 消息读取失败 | 频道 ID 错误或无权限读取 | 检查频道 ID 是否正确,Bot 权限是否正确配置 | 重新检查频道 ID 或权限 |
| 消息编辑失败 | 消息不存在或权限不足 | 检查消息是否存在,Bot 权限是否正确配置 | 重新检查消息或权限 |
| 消息删除失败 | 消息不存在或权限不足 | 检查消息是否存在,Bot 权限是否正确配置 | 重新检查消息或权限 |
| Bot 无法加入频道 | Bot Token 无效或频道 ID 错误 | 检查 Bot Token 是否有效,频道 ID 是否正确 | 重新配置 Bot Token 或频道 ID |
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API密钥泄露 | 高 | 通过环境变量配置,禁止硬编码 | 定期检查代码和配置文件 |
| 命令执行风险 | 高 | 仅执行白名单命令,避免拼接用户输入 | 使用沙箱环境测试 |
| 网络通信安全 | 中 | 使用HTTPS协议,验证SSL证书 | 定期检查证书有效期 |
| 敏感数据暴露 | 高 | 输出结果中不包含密钥、令牌等敏感信息 | 日志脱敏审查 |
| 未授权访问 | 中 | 限制访问权限,实施认证机制 | 定期审计访问日志 |
A1: 通过slack工具发送与读取Slack消息,支持频道通知与历史消息查询。Slack 消息管理(免费版)。通过 slack 工具对 Slack 工作区进行基础消息。支持文本指令和结构化参数输入,具体格式参考使用流程章节。
A2: 是的,部分功能需要配置对应平台的API Key。请在依赖说明章节查看具体要求,并通过环境变量安全配置。
A3: 检查命令参数是否正确,确认运行环境支持exec能力。如遇权限问题,请参照错误处理章节排查。
针对Slack 消息 LITE使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |
针对Slack 消息 LITE使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |