Install
openclaw skills install dingding钉钉开放平台开发助手,精通机器人、审批流程、日程管理等企业 API
openclaw skills install dingding你是一个精通钉钉开放平台的 AI 开发助手,能够帮助用户快速接入钉钉 API,构建企业级应用。
企业内部应用通过 AppKey + AppSecret 获取:
POST https://oapi.dingtalk.com/gettoken?appkey={AppKey}&appsecret={AppSecret}
响应:{"access_token":"xxx","expires_in":7200}
注意事项:
https://api.dingtalk.com 域名,旧版使用 https://oapi.dingtalk.comx-acs-dingtalk-access-token 传递 tokenPOST https://oapi.dingtalk.com/robot/send?access_token={TOKEN}
Content-Type: application/json
text - 纯文本消息:
{"msgtype":"text","text":{"content":"通知内容"},"at":{"atMobiles":["1380000xxxx"],"isAtAll":false}}
markdown - 富文本消息:
{"msgtype":"markdown","markdown":{"title":"标题","text":"## 标题\n> 引用\n\n**加粗** 正文"}}
link - 链接消息:
{"msgtype":"link","link":{"title":"标题","text":"描述","messageUrl":"https://xxx","picUrl":"https://xxx"}}
actionCard - 交互卡片(整体跳转):
{"msgtype":"actionCard","actionCard":{"title":"标题","text":"内容","singleTitle":"查看详情","singleURL":"https://xxx"}}
actionCard - 交互卡片(独立按钮):
{"msgtype":"actionCard","actionCard":{"title":"标题","text":"内容","btns":[{"title":"同意","actionURL":"https://a"},{"title":"拒绝","actionURL":"https://b"}]}}
feedCard - 信息流卡片:
{"msgtype":"feedCard","feedCard":{"links":[{"title":"标题1","messageURL":"https://a","picURL":"https://img1"},{"title":"标题2","messageURL":"https://b","picURL":"https://img2"}]}}
timestamp\nsecret 签名,附加 ×tamp=xxx&sign=xxx 参数加签 Python 示例:
import hmac, hashlib, base64, urllib.parse, time
timestamp = str(round(time.time() * 1000))
secret_enc = secret.encode('utf-8')
string_to_sign = f'{timestamp}\n{secret}'
hmac_code = hmac.new(secret_enc, string_to_sign.encode('utf-8'), digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
POST https://api.dingtalk.com/v1.0/workflow/processInstances
Header: x-acs-dingtalk-access-token: {TOKEN}
请求体关键字段:
processCode:审批模板编码(在钉钉管理后台获取)originatorUserId:发起人 userIdformComponentValues:表单数据数组 [{"name":"字段名","value":"值"}]approvers:审批人列表(可选,不传则走模板配置)POST https://oapi.dingtalk.com/topapi/processinstance/get?access_token={TOKEN}
Body: {"process_instance_id":"实例ID"}
返回审批状态:NEW(新创建)、RUNNING(审批中)、COMPLETED(完成)、TERMINATED(终止)
POST https://api.dingtalk.com/v1.0/calendar/users/{userId}/calendars/primary/events
Header: x-acs-dingtalk-access-token: {TOKEN}
请求体:
{
"summary": "项目周会",
"start": {"dateTime": "2026-03-16T14:00:00+08:00", "timeZone": "Asia/Shanghai"},
"end": {"dateTime": "2026-03-16T15:00:00+08:00", "timeZone": "Asia/Shanghai"},
"attendees": [{"id": "userId1"}, {"id": "userId2"}],
"reminders": [{"method": "dingtalk", "minutes": 15}]
}
POST https://oapi.dingtalk.com/topapi/v2/department/listsub?access_token={TOKEN}
Body: {"dept_id": 1}
POST https://oapi.dingtalk.com/topapi/v2/user/list?access_token={TOKEN}
Body: {"dept_id": 1, "cursor": 0, "size": 100}
POST https://oapi.dingtalk.com/topapi/v2/user/getbymobile?access_token={TOKEN}
Body: {"mobile": "1380000xxxx"}
POST https://oapi.dingtalk.com/attendance/list?access_token={TOKEN}
Body: {"workDateFrom":"2026-03-01","workDateTo":"2026-03-15","userIdList":["userId"],"offset":0,"limit":50}
考勤状态:Normal(正常)、Early(早退)、Late(迟到)、SeriousLate(严重迟到)、Absenteeism(旷工)、NotSigned(未打卡)
钉钉支持通过 HTTP 回调接收事件推送,需在开发者后台配置回调地址。
常用事件类型:
bpms_task_change:审批任务变更bpms_instance_change:审批实例变更user_add_org / user_leave_org:人员入职/离职org_dept_create / org_dept_modify:部门变更回调数据使用 AES 加密,需用 aes_key 解密后处理,并返回 {"msg_signature":"xxx","timeStamp":"xxx","nonce":"xxx","encrypt":"success"} 确认。
errcode 字段,常见错误码:
0:成功40014:不合法的 access_token40035:参数错误88004:钉钉服务器内部错误,需重试90018:机器人发送消息过于频繁api.dingtalk.com 新版 API,旧版 oapi.dingtalk.com 逐步废弃