官方与参考链接
下文列出 opencli slack 全部子命令;Web API 请求体字段以 Slack 官方方法文档 为准,CLI 层入口以本站为准。
概述
Slack CLI 模块 opencli slack 面向已创建 Slack App 的团队,提供 token 配置、chat.postMessage 封装、以及常见管理 API 的快捷入口。可与 OpenCLI 其他平台模块并列使用于「一条流水线通知多个协作工具」场景。
前置要求
| 项目 | 说明 |
|---|
| Slack App + Bot User | 在 api.slack.com 创建应用并安装到 Workspace |
| Bot User OAuth Token | 一般以 xoxb- 开头 |
| 所需 OAuth Scope | 如 chat:write、channels:read 等 |
| Node.js 20+ | 运行全局 opencli |
安装
npm install -g @opencli/cli@latest
opencli slack --help
配置 Bot Token
切勿将 xoxb- token 提交到版本库。
环境变量(推荐)
export SLACK_BOT_TOKEN=xoxb-your-token-here
OpenCLI 会读取 SLACK_BOT_TOKEN;也可使用 opencli slack config 写入本地加密文件(视版本而定)。
交互式写入(示例)
opencli slack config set bot_token --prompt
按提示粘贴 token,输入不会回显到终端。
命令参考(全量)
opencli slack --help
配置 config
| 命令 | 说明 |
|---|
opencli slack config set bot_token --prompt | 交互粘贴 xoxb- |
opencli slack config set bot_token --value <token> | 非交互(注意 shell 历史) |
opencli slack config set bot_token --from-env <ENV> | 从环境变量读取 |
opencli slack config get bot_token | 读取(默认掩码显示) |
opencli slack config path | 配置文件路径 |
会话消息 chat
| 命令 | 说明 |
|---|
opencli slack chat post --channel <Cxx 或 #name> --text <text> [--thread-ts <ts>] | 等同 chat.postMessage |
opencli slack chat update --channel <Cxx> --ts <消息ts> --text <text> | 更新消息 |
opencli slack chat post --channel C01234567 --text "OpenCLI:生产部署完成 ✅"
文件 files
| 命令 | 说明 |
|---|
opencli slack files upload --channel <Cxx> --file <path> [--title <t>] [--thread-ts <ts>] | 上传文件 |
opencli slack files upload --channel C01234567 --file ./build.log --title "Build log"
频道 channels
| 命令 | 说明 |
|---|
opencli slack channels list [--types public_channel,private_channel,...] | Bot 可见会话列表 |
opencli slack channels info --channel <Cxx> | 频道元数据 |
用户 users
| 命令 | 说明 |
|---|
opencli slack users lookup --email <mail> | 邮箱查 user id |
opencli slack users info --user <Uxx> | 用户信息 |
会话 conversations
| 命令 | 说明 |
|---|
opencli slack conversations open --users <U1,U2,...> | 打开或创建 DM |
通用转义 api(任意 Web API)
| 命令 | 说明 |
|---|
opencli slack api call --method <methods.name> [--body '<json>'] [--query k=v] | 直接调用;--method 如 chat.postMessage、users.list |
opencli slack api call --method chat.postMessage --body '{"channel":"C01234567","text":"hi"}'
开发 socket(可选)
| 命令 | 说明 |
|---|
opencli slack socket dev [--app-token <xapp->] | 本地 Socket Mode 调试隧道(依实现) |
与 Socket Mode / 事件对比
- Webhook / HTTP 模式:适合部署在公网服务器;需在 Slack App 中配置 Request URL。
- Socket Mode:适合本地开发;需
xapp- App-Level Token。OpenCLI 可提供 opencli slack socket dev 类命令做隧道调试(具体以 opencli slack --help 为准)。
故障排查
| 现象 | 处理 |
|---|
not_in_channel | 将 Bot 邀请进目标频道或使用已有权限的会话 ID |
invalid_auth | 检查 token 是否过期、是否误用了 User Token |
rate_limited | 遵循 Slack Tier 限制,在脚本中加入退避重试 |