全部 Skill/钉钉开放平台

钉钉开放平台 Skill

覆盖钉钉企业开发最常接的鉴权、通讯录、消息、审批、考勤、事件订阅与限流。重点讲清 api.dingtalk.com 与 oapi.dingtalk.com 两套 API 的鉴权、响应判定和字段风格差异,以及回调加解密的完整算法。

文档版 · 未实测dingtalkopen.dingtalk.com新版请求头 / 旧版 URL 参数传 token协同办公更新 2026-09-11
7份 reference
6个易错点
6条无凭证探测
2026-09-11文档抓取
INSTALL · 安装

安装

选你用的 Agent,复制命令。

npx -y skills add fxp/skillify --skill dingtalk --agent claude-code --yes

装到项目的 .claude/skills/;加 -g 装到全局。装完需要你手动执行 /reload-plugins,这一步 Agent 代劳不了。

或者让 Agent 自己装

读 https://github.com/fxp/skillify/blob/main/skills/dingtalk/prompt.md 并照它执行

装对了的标志:references/ 下有 7 份文档,里面 grep '<!-- Gap:' 能搜到 4 处。

TRY ASKING · 装好后可以这样问

装好后,可以这样问你的 Agent

这份 Skill 覆盖的典型任务。点一下复制。

CAPABILITIES · 能力清单

7 类能力

每类能力对应一份 reference,Agent 按任务只打开需要的那份。

鉴权与 access token

新旧两套 token 接口、用户 OAuth 与免登、第三方应用 token 与签名、ID 体系

references/auth.mdPOST /v1.0/oauth2/accessToken · GET /gettoken · POST /v1.0/oauth2/userAccessToken

通讯录

用户与部门查询、unionid 和手机号转 userid、全员遍历

references/contacts.mdPOST /topapi/v2/user/get · POST /topapi/v2/department/listsub · POST /topapi/user/listid

消息:工作通知 / 机器人 / 互动卡片

工作通知与送达确认、自定义机器人加签、企业机器人收发、互动卡片与 AI 流式更新

references/messaging.mdPOST /topapi/message/corpconversation/asyncsend_v2 · POST /robot/send · POST /v1.0/robot/groupMessages/send · POST /v1.0/card/instances/createAndDeliver

OA 审批

表单 schema、发起审批与各控件取值写法、查询、同意拒绝、撤销

references/oa-approval.mdPOST /v1.0/workflow/processInstances · GET /v1.0/workflow/processInstances · POST /v1.0/workflow/processes/instanceIds/query

考勤

打卡结果与明细、考勤组与排班、请假状态、考勤报表列值

references/attendance.mdPOST /attendance/list · POST /attendance/listRecord · POST /topapi/attendance/getleavestatus

事件订阅

Stream 与 HTTP 推送选型、回调验签加解密的完整实现、事件体差异

references/events.mdStream /v1.0/im/bot/messages/get · HTTP callback · POST /call_back/register_call_back

错误码与限流

两套响应格式的判定、常见错误码、IP 与接口维度限流、重试写法

references/errors-and-limits.mderrcode 88 / sub_code · 90002 · 403 Forbidden.AccessDenied.*
FACTS · 当前事实

当前事实

整理自官方文档(抓取于 2026-09-11),还没有用真实凭证验证。

新版 Base URLhttps://api.dingtalk.com/v1.0/…,JSON,camelCase
旧版 Base URLhttps://oapi.dingtalk.com/topapi/…,snake_case
应用 tokenPOST /v1.0/oauth2/accessTokenGET /gettoken7200 秒,必须缓存
成功判定旧版出错也是 HTTP 200,看 errcode == 0;新版看 HTTP 2xx
事件接收Stream 模式(dingtalk-stream)免公网、免加解密;HTTP 回调须验签并回加密的 success
GOTCHAS · 易错点

照通用经验写容易错的 6 件事

来自官方文档,还没有用真实凭证验证。

  1. token 位置由域名决定。新版只认 x-acs-dingtalk-access-token 头,不认 Bearer 和查询参数;旧版只认 access_token 参数,只放请求头会报 errcode 88
  2. 旧版鉴权错误包在 88 里。真实原因在字符串 sub_code(如 "40014"),按错误码表写 errcode == 40014 永远不会触发。
  3. 工作通知 errcode=0 不等于送达。超出每人每日条数或重复内容时接口照样返回成功,要用 getsendresult 查被流控的人。
  4. HTTP 回调要回加密的 success。AES-CBC,key 为 aes_key 补等号后 Base64 解码,IV 取前 16 字节,PKCS7 块大小是 32 而不是 16。
  5. 机器人消息的 senderId 是加密 ID。员工 userid 在 senderStaffId,且机器人发布上线后才返回。
  6. 审批表单值全是字符串。多选、明细要 JSON 序列化,日期区间连 name 都是数组字符串;通过 = COMPLETEDagree
STATUS · 验证状态

验证状态

文档版:整理自官方文档(抓取于 2026-09-11),还没有用真实凭证调用验证。页面和 Skill 里标「文档原文,未实测」的报错与行为都来自文档本身。

无凭证探测

  • 新版接口用 Bearer 或 ?access_token= 传 token,返回 400 AuthenticationFailed.MissingParameter(缺少 x-acs-dingtalk-access-token)
  • 旧版接口伪造 token 返回 HTTP 200 + errcode 88, sub_code "40014";只放请求头返回 sub_code "40000" access_token is blank
  • 按文档 curl(GET 加 -d 表单)调 gettoken 返回 40035 缺少参数;改用查询参数才进入凭证校验
  • 第三方授权企业 token 按文档参数表的路径(无 /v1.0)返回 HTTP 200 + errcode 404「请求的URI地址不存在」,带 /v1.0 的路径才存在
  • 自定义机器人伪造 token 返回 300005 token is not exist,而非文档写的 400101
  • 旧版接口路径拼错不返回 404,而是 HTTP 200 + errcode 22 不合法 ApiName
有这个平台的沙箱或 API Key?联系我们——补测并做完装与不装的对照测试后,它会升级为「已实测」。