dingtalk-api

调用钉钉开放平台API,支持用户搜索/详情/查询、部门管理(搜索/详情/子部门/用户列表/父部门)、机器人单聊消息发送、群聊消息发送、群内机器人列表查询、Stream模式事件推送、多会话隔离管理等核心功能。Use when needing to search DingTalk users or departments, get user/department details, send robot messages, list group bots, handle Stream mode events, or manage multi-session conversations.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "dingtalk-api" with this command: npx skills add Zaohon/dingtalk-bot

DingTalk API Skill

用于调用钉钉开放平台 API 的技能,提供完整的钉钉企业级集成功能,包括传统API调用和Stream模式事件推送。

核心功能模块

用户与组织管理

  • 用户搜索、详情查询、手机号/unionid查询
  • 部门管理(搜索、详情、子部门、用户列表、父部门)
  • 企业员工统计、组织架构映射
  • 离职记录查询、未登录用户列表

消息与机器人

  • 机器人单聊消息发送
  • 机器人群聊消息发送
  • 群内机器人列表查询
  • 消息内容格式化与发送

Stream模式事件推送(推荐)

  • 实时消息接收:通过WebSocket长连接接收钉钉事件
  • 多会话隔离:为每个用户/群聊成员创建独立的AI会话
  • 上下文保持:每个会话保持完整的对话历史和个性化记忆
  • 自动回复路由:AI生成的回复直接通过钉钉API发送,避免多通道冲突

OA审批管理

  • 审批实例查询、详情获取
  • 发起、终止、执行、转交审批任务
  • 审批评论管理、待办数量统计

API版本支持

传统服务端API (兼容)

  • 用户管理:用户查询、部门管理
  • 消息发送:机器人消息
  • 特点:稳定可靠、广泛使用、向后兼容

Stream模式API (推荐)

  • 事件推送:实时接收钉钉消息和事件
  • 长连接:基于WebSocket的持久连接
  • 高并发:支持大量用户同时对话
  • 低延迟:消息处理延迟毫秒级

权限说明

企业内部应用

  • 支持所有功能:用户管理、消息、Stream模式、OA审批
  • 权限配置:在钉钉开发者后台申请相应权限
  • 认证方式:使用AppKey/AppSecret获取access_token
  • Stream配置:需在开发者后台配置事件订阅和回调URL

第三方企业应用

  • 部分功能支持:用户管理、消息
  • 认证方式:OAuth2.0授权流程
  • Stream模式:不支持

第三方个人应用

  • 功能受限:仅支持基础用户查询
  • 不支持:消息发送、Stream模式

前置要求

传统API模式

  • 已设置环境变量 DINGTALK_APP_KEYDINGTALK_APP_SECRET
  • 钉钉应用已创建并拥有相应 API 权限
  • 对于企业内部应用,确保在钉钉管理后台已授权所需权限

Stream模式(推荐)

  • 企业内部应用(必须)
  • 公网可访问的HTTPS服务器(用于事件回调)
  • 钉钉开发者后台已配置Stream模式事件订阅
  • Python 3.8+ 环境(用于运行Stream Bridge)

环境变量配置

# 传统API和Stream模式都需要
export DINGTALK_APP_KEY="<your-app-key>"
export DINGTALK_APP_SECRET="<your-app-secret>"

# Stream模式额外配置(可选)
export DINGTALK_STREAM_LOG_LEVEL="INFO"
export DINGTALK_SESSION_MEMORY_DIR="./memory"

使用示例

1. 传统API调用

查询用户详情

npx ts-node scripts/get-user.ts "<userId>" [--debug]

发送单聊消息

npx ts-node scripts/send-user-message.ts "<userId>" "<robotCode>" "<消息内容>" [--debug]

获取部门用户列表

npx ts-node scripts/list-department-users.ts "<deptId>" [--debug]

搜索用户

npx ts-node scripts/search-user.ts "<keyword>" [--debug]

2. Stream模式部署(推荐)

启动Stream Bridge

# 创建虚拟环境
python3 -m venv dingtalk_venv
source dingtalk_venv/bin/activate
pip install dingtalk-stream

# 启动Stream服务
./start_dingtalk_stream.sh

会话管理特性

  • 私聊会话dingtalk_private_{user_id} - 每个用户独立会话
  • 群聊会话dingtalk_group_{group_id}_{user_id} - 群聊中每个用户独立会话
  • 记忆持久化:会话记忆保存在 memory/ 目录下
  • 自动清理:24小时无活动的会话自动清理

错误处理

所有脚本在错误时返回统一格式:

{
  "success": false,
  "error": {
    "code": "ERROR_CODE",
    "message": "错误描述"
  }
}

常见错误码:

  • MISSING_CREDENTIALS - 未设置环境变量
  • INVALID_ARGUMENTS - 参数不足
  • AUTH_FAILED - access_token 获取失败
  • PERMISSION_DENIED - 权限不足
  • UNKNOWN_ERROR - API 调用异常
  • STREAM_CONNECTION_FAILED - Stream连接失败

最佳实践

  1. 权限最小化:只申请必要的API权限
  2. 错误处理:始终检查API响应的errcode
  3. 调试模式:使用--debug参数查看详细请求/响应
  4. 批量操作:对于大量数据,使用批量API接口
  5. Stream模式优先:实时交互场景优先使用Stream模式
  6. 会话隔离:确保不同用户的对话上下文完全隔离
  7. 频率控制:遵守钉钉API调用频率限制

安全注意事项

  • 不要在代码中硬编码AppKey/AppSecret
  • 使用环境变量或安全的配置管理
  • 敏感操作(如删除、修改)需要二次确认
  • 遵循钉钉的安全最佳实践指南
  • Stream模式安全:确保回调URL使用HTTPS,验证事件签名
  • 数据隔离:不同用户的会话数据完全隔离,符合企业安全要求

架构优势

多会话隔离架构

  • 用户识别:准确识别私聊和群聊中的不同用户
  • 上下文保持:每个会话保持完整的对话历史
  • 个性化记忆:支持用户偏好和历史记录的持久化
  • 资源管理:自动清理过期会话,避免资源泄露

回复路由优化

  • 通道隔离:钉钉回复只通过钉钉API,避免触发其他通道
  • 性能优化:异步处理,支持高并发
  • 可靠性:结果文件机制确保消息不丢失
  • 错误恢复:网络错误自动重试,保证消息送达

项目结构

dingtalk-api/
├── scripts/                    # 传统API脚本
│   ├── *.ts                   # 各类API调用脚本
├── stream/                    # Stream模式相关文件
│   ├── dingtalk_stream_bridge.py    # Stream Bridge主程序
│   ├── dingtalk_session_manager.py  # 会话管理器
│   ├── dingtalk_reply_tool.py       # 钉钉回复工具
│   └── *.sh                   # 启动/停止脚本
├── memory/                    # 会话记忆文件(运行时生成)
├── types/                     # TypeScript类型定义
├── SKILL.md                   # 技能文档
├── README.md                  # 详细使用说明
└── package.json               # 依赖配置

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Charging Ledger

充电记录账本 - 从截图提取充电信息并记录,支持按周、月查询汇总。**快速暗号**: 充电记录、充电账本、充电汇总。**自然触发**: 记录充电、查询充电费用、充电统计。

Registry SourceRecently Updated
General

qg-skill-sync

从团队 Git 仓库同步最新技能到本机 OpenClaw。支持首次设置、定时自动更新、手动同步和卸载。当用户需要同步技能、设置技能同步、安装或更新团队技能,或提到「技能同步」「同步技能」时使用。

Registry SourceRecently Updated
General

Ad Manager

广告投放管理 - 自动管理广告投放、优化ROI、生成报告。适合:营销人员、电商运营。

Registry SourceRecently Updated