OpenCLI Online

钉钉

钉钉 CLI

钉钉开放平台企业内部应用、机器人群消息与审批的 CLI 操作指南。

官方与参考链接

类型链接
钉钉开放平台https://open.dingtalk.com/
开发者文档(统一入口)https://open.dingtalk.com/document/
应用管理后台https://open-dev.dingtalk.com/

下文列出 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

通讯录 contact

命令说明
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 与文档中列出的其他域名。