SuperAPI AI 工具集

slack-master

办公与效率

查看项目

更新于 10-15 12:12

技能介绍

Slack Master 是一个共享资源库,而不是面向用户的技能。它被 Slack 集成技能引用,用于消除重复内容。

用途

为以下技能提供共享资源:slack-connect(Slack 工作区操作的元技能)、slack-send-message(向频道或私信发送消息)、slack-list-channels(列出可用频道)、slack-search-messages(搜索消息历史),以及另外 29 个操作技能。用户不直接加载本技能,而是直接调用上述具体技能。

架构:DRY 原则

解决的问题:Slack 技能之间会重复内容(安装说明、API 文档、认证流程、错误处理)。

解决方案:将共享内容抽取到 slack-master/references/ 和 slack-master/scripts/,然后由各技能引用。

结果:单一事实来源,减少每个技能的上下文占用。

认证模型:用户 OAuth

该集成使用用户 OAuth(而非机器人 OAuth)进行团队级部署:

  • 每位团队成员使用自己的账号认证
  • 发送的消息以用户身份显示(而非机器人)
  • 用户只能看到自己有权访问的频道和私信
  • 不会发生跨用户数据暴露
  • 令牌类型:xoxp-(用户令牌)

为什么使用用户 OAuth:消息来自真实用户而非机器人;遵循现有频道权限;无需在每个频道安装机器人;每位用户控制自己的访问权限。

共享资源

所有 Slack 技能都引用这些资源(渐进式披露)。

references/ 目录

  • setup-guide.md:完整安装向导,包括创建使用用户 OAuth 的 Slack 应用、配置 OAuth 权限范围、获取客户端 ID 和密钥、运行 OAuth 流程。
  • api-reference.md:Slack API 模式,包括基础 URL 和认证、全部 32 个 API 端点文档、请求/响应示例、速率限制信息。
  • error-handling.md:故障排除,包括常见错误及解决方案、HTTP 错误码、令牌过期处理、权限范围问题。
  • authentication.md:用户 OAuth 流程,包括 OAuth 2.0 授权流程、令牌交换过程、令牌刷新(Slack 令牌通常不会过期)、按用户存储令牌。

scripts/ 目录

认证与配置

  • check_slack_config.py:预检校验。用法:python check_slack_config.py [--json]。参数 --json 可选,默认 False,输出结构化 JSON 供 AI 使用。退出码:0=已配置,1=部分配置,2=未配置。使用时机:在任何 Slack 操作之前首先运行,用于验证用户令牌是否已配置、诊断认证问题或检查是否需要 OAuth 设置。
  • setup_slack.py:交互式 OAuth 向导。用法:python setup_slack.py。无参数,交互运行,引导完成 OAuth 授权、获取用户令牌并保存到 .env。使用时机:Slack 集成需要初始设置时、check_slack_config.py 返回退出码 2 时,或用户需要重新认证时。
  • slack_client.py:共享 API 客户端。示例:from slack_client import get_client; client = get_client(); result = client.post('chat.postMessage', {'channel': 'C123', 'text': 'Hello'})。提供:从 .env 自动加载令牌、Slack API 请求格式化、错误处理与响应解析、速率限制感知。使用时机:在所有 Slack 操作脚本中导入,以获得一致的 API 访问。

消息操作

  • send_message.py:发送消息(chat.postMessage)。用法:python send_message.py --channel CHANNEL --text "Message" [--thread-ts TS] [--json]
  • update_message.py:更新消息(chat.update)。用法:python update_message.py --channel CHANNEL --ts TIMESTAMP --text "New text" [--json]
  • delete_message.py:删除消息(chat.delete)。用法:python delete_message.py --channel CHANNEL --ts TIMESTAMP [--json]
  • schedule_message.py:定时发送消息(chat.scheduleMessage)。用法:python schedule_message.py --channel CHANNEL --text "Message" --post-at UNIX_TS [--json]

频道操作

  • list_channels.py:列出频道(conversations.list)。用法:python list_channels.py [--types public,private] [--limit N] [--json]
  • channel_info.py:获取频道信息(conversations.info)。用法:python channel_info.py --channel CHANNEL [--json]
  • channel_history.py:获取消息(conversations.history)。用法:python channel_history.py --channel CHANNEL [--limit N] [--oldest TS] [--latest TS] [--json]
  • create_channel.py:创建频道(conversations.create)。用法:python create_channel.py --name NAME [--is-private] [--json]

用户操作

  • list_users.py:列出工作区用户(users.list)。用法:python list_users.py [--limit N] [--json]
  • user_info.py:获取用户信息(users.info)。用法:python user_info.py --user USER_ID [--json]

文件操作

  • upload_file.py:上传文件(files.upload)。用法:python upload_file.py --file PATH --channels C1,C2 [--title TITLE] [--json]
  • list_files.py:列出文件(files.list)。用法:python list_files.py [--channel CHANNEL] [--user USER] [--limit N] [--json]

搜索操作

  • search_messages.py:搜索消息(search.messages)。用法:python search_messages.py --query "search terms" [--count N] [--json]
  • search_files.py:搜索文件(search.files)。用法:python search_files.py --query "search terms" [--count N] [--json]

智能错误检测流程

当 Slack 技能因缺少配置而失败时,AI 应:

第 1 步:以 JSON 输出运行配置检查 python 00-system/skills/slack/slack-master/scripts/check_slack_config.py --json

第 2 步:解析 ai_action 字段 JSON 输出包含 ai_action 字段,告知 AI 该做什么:

  • proceed_with_operation:配置正常,继续原操作
  • run_oauth_setup:运行 python setup_slack.py 进行授权
  • check_scopes:令牌存在但缺少所需权限范围
  • token_revoked:用户撤销了访问权限,需要重新授权

第 3 步:帮助用户修复问题 如果 ai_action 为 run_oauth_setup:告诉用户“Slack 集成需要设置,我们来授权你的账号。”运行 python 00-system/skills/slack/slack-master/scripts/setup_slack.py,用户将按引导完成 OAuth 流程,令牌保存到 .env,然后重新运行配置检查以验证。

JSON 输出结构示例 { "status": "not_configured", "exit_code": 2, "ai_action": "run_oauth_setup", "missing": [ {"item": "SLACK_USER_TOKEN", "required": true, "location": ".env"} ], "fix_instructions": [...], "setup_wizard": "python 00-system/skills/slack/slack-master/scripts/setup_slack.py" }

技能如何引用本资源

每个技能仅在需要时加载共享资源(渐进式披露):

  • slack-connect 使用:check_slack_config.py(任何操作前校验)、根据用户请求使用所有 API 脚本、按需使用所有参考文档。
  • slack-send-message 使用:check_slack_config.py(发送前校验)、send_message.py(核心功能)、error-handling.md(故障排除)。

环境变量

.env 中必需:

Slack 用户 OAuth 令牌(以 xoxp- 开头)

SLACK_USER_TOKEN=xoxp-xxxxxxxxxxxxx

可选:用于 OAuth 设置流程

SLACK_CLIENT_ID=your-client-id SLACK_CLIENT_SECRET=your-client-secret

所需 OAuth 权限范围(用户令牌)

channels:read、channels:write、channels:history、groups:read、groups:write、groups:history、im:read、im:write、im:history、mpim:read、mpim:write、mpim:history、chat:write、users:read、users:read.email、files:read、files:write、reactions:read、reactions:write、pins:read、pins:write、search:read、reminders:read、reminders:write、team:read

API 基础 URL

所有 API 请求发送至:https://slack.com/api/

版本:1.0 创建时间:2025-12-17 状态:生产就绪