官方与参考链接
下文列出 opencli dingtalk 全部子命令;钉钉 HTTP 字段以开放平台文档为准,CLI 入口以本站为准。
概述
钉钉 CLI(opencli dingtalk)帮助在终端完成应用凭证配置、access_token 维护、群机器人消息发送等重复操作。适用于运维脚本与本地联调。
前置要求
| 项目 | 说明 |
|---|
| 钉钉开放平台企业应用 | 已创建「企业内部开发」或「第三方企业应用」 |
| AppKey / AppSecret | 应用详情页获取 |
| 必要 API 权限 | 如「通讯录只读」「群会话写入」等,需在后台申请并通过 |
| Node.js 20+ | 运行 opencli |
安装
npm install -g @opencli/cli@latest
opencli dingtalk --version
配置
使用子命令写入配置
opencli dingtalk config set app_key dingxxxxxxxxxxxx
opencli dingtalk config set app_secret --stdin < secret.txt
set app_key:对应开放平台的 AppKey。
set app_secret --stdin:从文件读取 Secret,避免出现在进程列表中。
仅使用环境变量
export DINGTALK_APP_KEY=dingxxxxxxxxxxxx
export DINGTALK_APP_SECRET=your_secret_here
OpenCLI 会优先读取环境变量,其次读取 ~/.opencli/dingtalk.json。
获取 access_token
opencli dingtalk auth token --print
| 行为 | 说明 |
|---|
向 https://oapi.dingtalk.com 请求 | 使用 app_key + app_secret 换取 access_token |
| 本地缓存 | 默认缓存约 2 小时有效期,提前 5 分钟自动刷新 |
--print | 调试时打印 token;生产脚本勿记录日志 |
命令参考(全量)
opencli dingtalk --help
配置 config
| 命令 | 说明 |
|---|
opencli dingtalk config set app_key <key> | 写入 AppKey |
opencli dingtalk config set app_secret --stdin | 从标准输入读 Secret |
opencli dingtalk config set app_secret --from-env <ENV> | 从环境变量读 Secret |
opencli dingtalk config get <key> | 读取单项 |
opencli dingtalk config list | 列出全部(敏感项掩码) |
opencli dingtalk config path | 配置文件路径 |
鉴权 auth
| 命令 | 说明 |
|---|
opencli dingtalk auth token [--print] [--no-cache] | 获取 access_token |
opencli dingtalk auth token --print
消息 message
| 命令 | 说明 |
|---|
opencli dingtalk message work-notice --userid-list <id1,id2> --msg '<json>' | 异步工作通知;--msg 为完整消息体 JSON |
opencli dingtalk message work-notice --userid-list "10001,10002" --msg '{"msgtype":"text","text":{"content":"部署已完成"}}'
群机器人 robot
| 命令 | 说明 |
|---|
opencli dingtalk robot webhook --url <webhook完整URL> --secret <加签密钥> --text <正文> | 加签模式发 text |
opencli dingtalk robot webhook --url <URL> --secret <SECRET> --markdown '<json>' | markdown 类型(若实现提供该 flag) |
opencli dingtalk robot webhook \
--url "https://oapi.dingtalk.com/robot/send?access_token=XXX" \
--secret SECRET \
--text "构建成功:main #1024"
审批 approval
| 命令 | 说明 |
|---|
opencli dingtalk approval get --process-instance-id <id> | 单实例详情 |
opencli dingtalk approval list [--originator <userid>] [--limit N] [--cursor <c>] | 列表分页 |
opencli dingtalk approval get --process-instance-id pi_xxxx
| 命令 | 说明 |
|---|
opencli dingtalk contact user get --userid <id> | 查询用户详情 |
通用 http(排障)
| 命令 | 说明 |
|---|
opencli dingtalk http get <path> [--query k=v] | 带 token 的 GET |
opencli dingtalk http post <path> --body '<json>' | 带 token 的 POST |
工具链提示
- 与 GitHub Actions 联用时,将
DINGTALK_APP_KEY、DINGTALK_APP_SECRET 设为 Encrypted secrets。
- 内网出口需放行
oapi.dingtalk.com 与文档中列出的其他域名。