@xpert-ai/plugin-dingtalk 提供两类集成:
默认推荐使用 钉钉-Stream模式(
dingtalk_long)。它由 Xpert AI 服务端主动连接钉钉 Stream 服务,不要求外部网络直接访问 Xpert AI;只有无法使用 Stream 模式时,再选择 钉钉-HTTP模式(dingtalk)。HTTP 模式需要公网回调地址,并要求回调 Token/AES Key 与钉钉后台一致。
准备钉钉应用
- 登录 钉钉开放平台。
- 创建企业内部应用。
- 开启机器人能力。
- 复制应用凭证:
- AppKey,在 Xpert AI 中填写为
Client ID (AppKey); - AppSecret,在 Xpert AI 中填写为
Client Secret。
- AppKey,在 Xpert AI 中填写为
- 在应用的机器人配置中复制 机器人编码(Robot Code)。
- 如果需要用户选择器或
dingtalk_list_users工具,开通通讯录部门成员读取权限。
一、Stream 模式配置
Stream 模式使用钉钉长连接接收机器人消息和卡片回调,不需要公网 HTTP 回调地址。在 Xpert AI 创建 Stream 集成
进入 设置 -> 系统集成,创建提供方为 钉钉-Stream模式 的集成。
集成测试会探测钉钉 Stream 连接,并返回:
mode=long_connection- 订阅主题
/v1.0/im/bot/messages/get - 订阅主题
/v1.0/card/instances/callback probe.connectedprobe.lastError
状态页
钉钉集成详情页提供 状态 页签,展示:- 连接方式
- 状态
- 机器人 / 集成名称
- Stream 订阅
- 最近连接时间
- 最近断开时间
- 最近回调时间
- 最近错误
- 重连次数
二、HTTP 模式配置
HTTP 模式使用钉钉回调地址接收机器人消息和卡片回调。它适合无法启用 Stream 模式,但已经有公网 API 地址的部署。在 Xpert AI 创建 HTTP 集成
进入 设置 -> 系统集成,创建提供方为 钉钉-HTTP模式 的集成。
测试成功后会返回回调地址:
配置钉钉后台
- 在钉钉开放平台进入应用的事件与回调或机器人消息推送配置。
- 接收方式选择 HTTP 推送。
- 填入 Xpert AI 返回的回调地址。
- 保证钉钉侧 Token/AES Key 与 Xpert AI 集成配置一致。
- 订阅机器人消息事件和卡片回调事件。
GET /api/dingtalk/webhook/<integrationId> 可达性检查。集成存在且启用 HTTP 回调时,该接口返回纯文本 success。
三、绑定数字专家
完成集成配置后,还需要:- 打开目标数字专家工作流。
- 添加 钉钉触发器。
- 选择刚创建的钉钉集成。
- 配置会话超时时间和消息汇总时间。
- 发布数字专家。
- 将钉钉机器人加入目标群或打开单聊测试。
四、回复与通知能力
钉钉通道支持:- 文本回复;
- Markdown 回复;
- 交互卡片回复;
- 卡片按钮回调;
- 更新消息;
- 撤回人与机器人会话(OTO)消息;
- 通过通知中间件主动发送文本、Markdown、交互卡片或模板消息。
dingtalk_send_text_notificationdingtalk_send_rich_notificationdingtalk_update_messagedingtalk_recall_messagedingtalk_list_users
常见问题
Stream 模式连接失败
检查:- Client ID/AppSecret 是否正确;
- 机器人能力是否开启;
- 服务端是否能访问钉钉 Stream 网关;
- 应用是否已发布。
HTTP 回调地址校验失败
检查:API_BASE_URL是否是公网可访问的 HTTPS 地址;- 反向代理是否转发
/api/dingtalk/webhook/<integrationId>; - Callback Token 和 Callback AES Key 是否与钉钉后台一致;
- 是否选择了钉钉-HTTP模式,而不是 Stream 模式集成。
主动发群消息失败
优先检查Robot Code。它应来自钉钉开放平台 应用 -> 机器人 -> 机器人的唯一标识,不是回调 payload 中的 robotCode=normal。