Install
openclaw skills install @thcjp/slack-hub-skill-freeopenclaw skills install @thcjp/slack-hub-skill-free面向团队协作场景的Slack基础消息集成(免费版)。提供频道消息发送与公共频道列表两大能力.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | Slack消息中枢LITE处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
需要配置对应API Key,详见上文环境配置章节
API Key配置方式:
export API_KEY=${API_KEY:?请设置环境变量}
配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统.
向指定公共频道发送文本消息。频道参数接受频道ID(C0123456789)或频道名(#general)。支持基础Slack消息格式化:*bold*、_italic_、`code`、emoji语法 :name:.
列出工作区内所有公共频道,返回频道ID、名称、成员数、话题。可用于频道发现与ID解析.
升级提示:线程回复、工作区内容搜索、用户DM发送、频道名自动解析、速率限制感知重试等高级功能仅在 slack-hub-skill 付费版中提供。- 验证返回数据的完整性和格式正确性
公共频道列表的配置文档进行参数调优详细的输入输出格式请参考下方章节说明。
| 场景 | 典型输入 | 输出内容 | 涉及能力 |
|---|---|---|---|
| 通知发布 | 向#general发送会议提醒 | 消息投递确认+时间戳 | 消息发送 |
| 频道发现 | 列出所有公共频道 | 频道列表(ID、名称、成员数) | 频道列表 |
不适用于:线程回复、工作区搜索、DM发送、文件上传(需升级付费版)
[ -n "${SLACK_BOT_TOKEN:-}" ] && echo ok || echo missing
需要先配置 Slack Bot Token:
- 访问 https://api.slack.com/apps 创建新App
- 配置 Bot Token Scopes:
chat:write、channels:read- 安装App到工作区,获取
xoxb-开头的Bot Token- 终端环境变量:
export SLACK_BOT_TOKEN="${SLACK_BOT_TOKEN:?请设置环境变量}"- 将Bot邀请到目标频道(
/invite @botname)
安全红线:永不接受/回显/存储来自聊天输入的Token;Token仅作为 Authorization: Bearer 请求头使用.
POST chat.postMessage,传 channel、textGET conversations.list,传 types=public_channel{ok: true, channel, ts, message}{ok: true, channels: [{id, name, num_members, ...}]}场景:团队需要在 #general 频道发布会议提醒
执行:
# 发送会议提醒
curl -s -X POST "https://slack.com/api/chat.postMessage" \
-H "Authorization: Bearer ${SLACK_BOT_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"channel": "C0GENERAL01",
"text": ":bell: *明日会议提醒*\n时间:周三 10:00\n地点:3号会议室\n议题:Q3路线图评审"
}'
输出:
{
"ok": true,
"channel": "C0GENERAL01",
"ts": "1721452800.123456",
"message": {
"text": ":bell: *明日会议提醒*\n时间:周三 10:00\n地点:3号会议室\n议题:Q3路线图评审",
"type": "message"
}
}
分析:消息成功投递到 #general 频道,时间戳 1721452800.123456 可用于后续引用。:bell: 会被渲染为bell emoji,*明日会议提醒* 渲染为粗体.
| 错误码 | 错误信息 | 原因分析 | 处理方式 |
|---|---|---|---|
invalid_auth | {ok:false, error:"invalid_auth"} | Token无效/过期/格式错误 | 检查网络连接和配置后重试,引导用户检查 SLACK_BOT_TOKEN 是否以 xoxb- 开头 |
channel_not_found | {ok:false, error:"channel_not_found"} | 频道ID不存在或Bot不是成员 | 引导用户用 /invite @botname 将Bot加入频道 |
rate_limited | HTTP 429 + Retry-After 头 | 触发速率限制 | 等待 Retry-After 秒数后检查网络连接和配置后重试 |
missing_scope | {ok:false, error:"missing_scope"} | Token缺少所需权限 | 引导用户添加 chat:write 或 channels:read Scope |
no_text | {ok:false, error:"no_text"} | 消息内容为空或仅含空格 | 检查 text 参数非空 |
A:访问 https://api.slack.com/apps 创建新App,在 OAuth & Permissions 页面配置 Bot Token Scopes(至少 chat:write、channels:read),安装App到工作区后复制 xoxb- 开头的Token。注意将Bot邀请到目标频道后才能发送消息.
A:常见原因:1) Token缺少 chat:write 权限;2) Bot未加入目标频道(用 /invite @botname 邀请);3) 频道ID错误。建议先用 conversations.list 确认频道ID,再检查返回的 error 字段.
A:免费版(LITE)包含频道消息发送和公共频道列表两大基础功能。付费版(Slack消息中枢)额外提供:
A:Slack支持 *bold*(粗体)、_italic_(斜体)、`code`(行内代码)。emoji使用 :name: 语法,如 :bell:、:rocket:。换行使用 \n.
#general 自动解析(付费版支持)需要更多能力? 升级到 slack-hub-skill 付费版获取线程回复、工作区搜索、DM发送、频道名解析、速率限制重试等高级功能.