🦀 ClawHub
Dingtalk Bot Publish
by @zaohon
调用钉钉开放平台API,支持用户搜索/详情/查询、部门管理(搜索/详情/子部门/用户列表/父部门)、机器人单聊消息发送、群聊消息发送、群内机器人列表查询、Stream模式事件推送、多会话隔离管理等核心功能。Use when needing to search DingTalk users or departmen...
TERMINAL
clawhub install dingtalk-bot-publish📖 About This Skill
name: dingtalk-api description: 调用钉钉开放平台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.
DingTalk API Skill
用于调用钉钉开放平台 API 的技能,提供完整的钉钉企业级集成功能,包括传统API调用和Stream模式事件推送。
核心功能模块
用户与组织管理
消息与机器人
Stream模式事件推送(推荐)
OA审批管理
API版本支持
传统服务端API (兼容)
Stream模式API (推荐)
权限说明
企业内部应用
第三方企业应用
第三方个人应用
前置要求
传统API模式
DINGTALK_APP_KEY 和 DINGTALK_APP_SECRETStream模式(推荐)
环境变量配置
# 传统API和Stream模式都需要
export DINGTALK_APP_KEY=""
export DINGTALK_APP_SECRET=""Stream模式额外配置(可选)
export DINGTALK_STREAM_LOG_LEVEL="INFO"
export DINGTALK_SESSION_MEMORY_DIR="./memory"
使用示例
1. 传统API调用
#### 查询用户详情
npx ts-node scripts/get-user.ts "" [--debug]
#### 发送单聊消息
npx ts-node scripts/send-user-message.ts "" "" "<消息内容>" [--debug]
#### 获取部门用户列表
npx ts-node scripts/list-department-users.ts "" [--debug]
#### 搜索用户
npx ts-node scripts/search-user.ts "" [--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/ 目录下错误处理
所有脚本在错误时返回统一格式:
{
"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调用频率限制
安全注意事项
架构优势
多会话隔离架构
回复路由优化
项目结构
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 # 依赖配置