Slack 团队协作平台 Skill
Slack 的 Web API 是 RPC 风格的 200+ 个方法,判断成败要看响应体的 ok/error 字段,几乎不看 HTTP 状态码——这条本 skill 用 4 次无凭证真实探测验证过(chat.postMessage 不带 token 返回 not_authed、伪造 token 返回 invalid_auth,HTTP 状态码始终是 200),比纯文档版 skill 多一层真实调用支撑。另一个高频坑是 scope 模型——token 有效不等于有权限,missing_scope 是最常见的报错。
xoxb- 或 user xoxp-)+ 细粒度 scope 模型Agent 工具更新 2026-09-21安装
选你用的 Agent,复制命令。
npx -y skills add fxp/skillify --skill slack --agent claude-code --yes装到项目的 .claude/skills/;加 -g 装到全局。装完需要你手动执行 /reload-plugins,这一步 Agent 代劳不了。
npx -y skills add fxp/skillify --skill slack --agent codex --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill slack --agent cursor --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill slack --agent opencode --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill slack --agent gemini-cli --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill slack --agent github-copilot --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill slack --agent trae --yes装到项目的 .trae/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill slack --agent windsurf --yes装到项目的 .windsurf/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill slack --agent qwen-code --yes把 --agent 换成你用的 Agent 标识,可以一次写多个。skills CLI 1.5.25 共支持 79 个,例如 qwen-code、kimi-code-cli、trae-cn、qoder、lingma、cline、roo。
或者让 Agent 自己装
读 https://github.com/fxp/skillify/blob/main/skills/slack/prompt.md 并照它执行装对了的标志:references/ 下有 6 份文档。
装好后,可以这样问你的 Agent
这份 Skill 覆盖的典型任务。点一下复制。
6 类能力
每类能力对应一份 reference,Agent 按任务只打开需要的那份。
鉴权与 Scope
Token 类型(bot/user/app-level)、scope 模型、OAuth v2 授权流程、请求签名验证
发送消息
chat.postMessage、mrkdwn 语法、Block Kit 富文本、线程回复、更新/删除/定时消息
读取消息与频道
频道类型判断、conversations.list/history/replies、加入频道、cursor 翻页
实时事件
Events API(HTTP)vs Socket Mode 怎么选、URL 验证握手、事件订阅权限模型
交互组件
slash command、按钮/菜单点击、response_url、trigger_id 与模态框
错误与限流
ok/error 判错模式、Tier 1-4 限流分级、Retry-After 退避、常见错误码
当前事实
整理自官方文档(抓取于 2026-09-21),还没有用真实凭证验证。
| 项 | 值 |
|---|---|
| Base URL | https://slack.com/api/<method>,RPC 风格,不是 REST |
| 鉴权 header | Authorization: Bearer xoxb-...(bot)或 xoxp-...(user),绝不能放 query string |
| 判断成败 | 看响应体 ok/error 字段,HTTP 状态码几乎总是 200(已用无凭证探测验证) |
| 消息格式 | mrkdwn 不是标准 Markdown,加粗是单星号 *bold*,链接是 <url|文字> |
| 限流 | 按方法分 Tier 1-4 + Special(chat.postMessage 约 1 条/秒/频道),429 时读 Retry-After 头精确等待 |
| 2025-05-29 新规 | 非 Marketplace 商业分发 app 的 conversations.history/replies 被降到 Tier 1,每分钟 1 次、limit 上限 15 |
照通用经验写容易错的 6 件事
来自官方文档,还没有用真实凭证验证。
- token 有效不等于有权限。Slack 从整包权限演进到细粒度 scope 模型,每个方法要求特定的 bot/user scope;scope 只增不减,追加新权限要用户重新走一遍 OAuth,不能"补丁式"单独加。
ok: false才是失败信号,不是 HTTP 状态码。已用无凭证探测证实:无 token、伪造 token、不存在的方法名,三次调用 HTTP 状态码都是 200,错误只在响应体的error字段(分别是not_authed/invalid_auth/unknown_method)。- bot token 能做的事天然比 user token 少。bot 只能读它已加入的频道历史,哪怕有
channels:historyscope,没被邀请进频道照样报not_in_channel;发消息到未加入的 public 频道还需要额外的chat:write.public。 - mrkdwn 不是标准 Markdown。加粗是单星号
*bold*不是**bold**,链接写<https://url|显示文字>,标准 Markdown 语法大概率不报错但也不会正确渲染。 - 限流是"每个方法各自独立",必须精确遵守
Retry-After。收到 429 时响应头带精确等待秒数,不要自己发明指数退避;conversations.history/replies对非 Marketplace 商业分发 app 自 2025-05-29 起被降到每分钟 1 次。 - slash command / 按钮点击必须 3 秒内回 200,
trigger_id只能用一次且 3 秒内失效。耗时逻辑要先 ACK 再异步处理,模态框要拿到trigger_id立刻用,不能经过任何异步等待。