news 2026/6/15 16:25:36

钉钉开发“待办“接口版本调研

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
钉钉开发“待办“接口版本调研

钉钉开发"待办"接口版本调研

结论速览

  • 旧版 (WorkRecord / OA消息):本质是“消息”。入口在“工作通知”会话窗口中。数据孤岛,无法与钉钉主界面的“待办”Tab打通。
  • 新版 (Todo 2.0):本质是“任务”。入口在钉钉底部的“待办”Tab、日历以及侧边栏。支持设置截止时间、执行人,且UI体验是原生的。
  • 推荐强烈建议使用新版 (Todo)。旧版接口已逐渐边缘化,且无法进入用户的核心任务管理视图。

一、 接口详细对比表

特性旧版 (WorkRecord / OA消息)新版 (Todo / 统一待办)
核心逻辑发送一条带有状态栏的消息创建一个原生的任务对象
用户入口聊天列表 -> 工作通知钉钉客户端底部“待办”Tab/ 聊天侧边栏 / 日历
API 版本OAPI (Old style)Open API v1.0 (RESTful)
权限要求基础的消息发送权限需申请todo.write等特定权限
交互体验消息流形式,容易被刷走列表形式,长期驻留,直到完成
删除功能仅支持更新状态,很难物理删除支持物理删除
文档地址已标记为不推荐或旧版钉钉待办任务文档

二、 接口调用方式对比

1. 推送待办 (Create)

旧版 (WorkRecord)

旧版通常使用“发起待办事项”接口。

  • Endpoint:POST /topapi/workrecord/add
  • 特点:需要构建一个表单列表(FormItem),用户点击后跳转到第三方URL。
  • 缺点:只是在“工作通知”里发了一条消息,用户如果不点进去,很容易忽略。

新版 (Todo)

新版是在用户的待办中心创建一个实体任务。

  • Endpoint:POST /v1.0/todo/users/{unionId}/tasks

  • Payload 示例:

    { "subject": "请审批合同文件", "description": "2024年度采购合同", "dueTime": 1703664000000, // 截止时间 "executorIds": ["user123"], // 执行人 "isOnlyShowExecutor": true, "sourceId": "unique_id_from_your_system" // 业务系统唯一ID,防重 }
  • 优势:支持设置截止时间(会有强提醒),直接出现在待办清单中。

2. 置已办 (Update Status)

旧版 (WorkRecord)

旧版通过更新待办事项的状态来“置已办”。

  • Endpoint:POST /topapi/workrecord/update
  • 逻辑:传入record_id,将状态字段更新。
  • 表现:用户聊天窗口里的那条消息,状态栏颜色变化(如从红变绿),文字变为“已完成”。

新版 (Todo)

新版通过更新任务状态接口。

  • Endpoint:PUT /v1.0/todo/users/{unionId}/tasks/{taskId}/status

  • Payload:

    JSON

    { "isDone": true }
  • 表现:该任务自动从用户的“待办”列表中移动到“已完成”列表,并划掉。

3. 删除待办 (Delete)

旧版 (WorkRecord)

  • 接口:无直接删除接口
  • 替代方案:只有“撤回消息”的概念 (/topapi/message/corpconversation/recall),或者将其状态更新为“取消”。这导致旧版数据清理非常麻烦。

新版 (Todo)

  • Endpoint:DELETE /v1.0/todo/users/{unionId}/tasks/{taskId}
  • 逻辑:物理删除。调用后,该任务从用户的任何视图中彻底消失。
  • 优势:适合处理脏数据或业务回滚场景。

三、 迁移注意事项 (Pitfalls)

如果您决定从旧版迁移到新版,或者直接开发新版,请注意以下“坑”:

  1. UnionId vs Userid:
    • 旧版接口大量使用userid
    • 新版 v1.0 接口为了标准化,RESTful 路径中通常要求使用unionId。你需要先通过userid换取unionId,或者维护两者的映射关系。
  2. sourceId 的重要性:
    • 在新版创建待办时,务必传入sourceId(你们业务系统的主键ID)。这样后续更新状态时,虽然标准API推荐用taskId(钉钉生成的ID),但部分SDK允许通过sourceId查找到任务,防止网络抖动导致的重复创建。
  3. 应用类型:
    • 新版待办接口目前主要开放给企业内部应用(H5微应用或小程序)。如果是第三方ISV应用,权限申请流程会有所不同。
  4. 点击跳转:
    • 新版待办支持配置appUrl(移动端跳转)和pcUrl(PC端跳转)。务必配置这两个参数,否则用户点击待办卡片无法跳转到你们的审批/详情页面。

四、 总结与建议

  • 如果你的需求是:仅仅是发个通知提醒用户,不需要用户跟踪状态,也不需要归档。
    • -> 使用工作通知 (OA消息)接口(不是WorkRecord,是Message)。
  • 如果你的需求是:真正的任务流转(如OA审批、任务指派),希望用户能有一个清单统一管理,做完一个少一个。
    • ->必须使用 新版 (Todo) 接口
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 12:14:17

TensorRT与Kafka消息队列集成实现异步推理

TensorRT与Kafka消息队列集成实现异步推理 在当今AI系统大规模落地的背景下,一个常见的工程挑战浮出水面:如何让深度学习模型既跑得快,又能扛住流量洪峰?尤其是在视频分析、实时推荐这类场景中,我们常常面临两难——要…

作者头像 李华
网站建设 2026/6/15 12:15:14

AI的副驾驶已就位:“人人都是产品经理”时代真正到来?

在杭州一家互联网公司的会议室里,一场产品评审会陷入了诡异的沉默。一位年轻产品经理轻点键盘,一份由AI生成的、结构工整、逻辑清晰的PRD(产品需求文档)便呈现在大屏幕上。会议室里先是响起低低的惊叹,随后便是漫长的沉…

作者头像 李华
网站建设 2026/6/15 13:11:24

绿盾注册机

天锐绿盾是一款专业的企业内网安全管理软件,以 “内核级透明加密 数据全生命周期管控” 为核心优势,构建 “加密 - 权限 - 审计 - 终端” 四维防护体系。它采用驱动层动态加解密技术和 256 位高强度加密算法,支持 20000 余种文件格式创建即加…

作者头像 李华
网站建设 2026/6/15 12:14:15

NVIDIA Orin芯片上部署TensorRT自动驾驶模型案例

在NVIDIA Orin上部署TensorRT自动驾驶模型:软硬协同的工程实践 在智能驾驶域控制器的研发一线,我们常常面临一个棘手的问题:实验室里训练得再完美的模型,一旦放到车载环境中就“水土不服”——推理延迟飙高、内存占用爆炸、功耗压…

作者头像 李华
网站建设 2026/6/10 14:02:11

构建自动化CI/CD流程:TensorRT模型持续集成

构建自动化CI/CD流程:TensorRT模型持续集成 在AI系统从实验室走向产线的过程中,一个常被忽视但至关重要的问题浮出水面——为什么训练时表现优异的模型,部署后却卡顿频发、响应迟缓? 答案往往不在于算法本身,而在于推…

作者头像 李华
网站建设 2026/6/15 13:11:25

TensorRT与TensorBoard集成实现可视化分析

TensorRT与TensorBoard集成实现可视化分析 在现代AI系统开发中,一个日益突出的矛盾摆在工程师面前:我们既需要极致的推理性能来满足实时性要求,又渴望对模型行为有清晰的理解和掌控。尤其是在将训练好的模型部署到生产环境时,这种…

作者头像 李华