wecomcli-todo

安装量: 7.5K
排名: #1119

安装

npx skills add https://github.com/wecomteam/wecom-cli --skill wecomcli-todo
企业微信待办事项管理技能
wecom-cli
是企业微信提供的命令行程序,所有操作通过执行
wecom-cli
命令完成。
概述
wecomcli-todo 提供企业微信待办事项的完整管理能力,包含以下功能:
查询待办列表
- 按创建时间和提醒时间过滤,支持分页,返回待办概要信息
获取待办详情
- 根据待办 ID 列表批量获取完整信息(含内容和分派人)
创建待办
- 创建新的待办事项,可指定内容、分派人和提醒时间
更新待办
- 修改已有待办的内容、分派人、状态或提醒时间
删除待办
- 删除指定的待办事项
变更用户待办状态
- 更改当前用户在某个待办中的状态(拒绝/接受/已完成)
命令调用方式
执行指定命令:
wecom-cli todo
<
tool_name
>
''
行为策略
查完列表必须查详情
:
get_todo_list
只返回待办 ID 和状态等概要信息,不包含待办的实际内容和分派人。对用户来说,没有内容的待办列表毫无用处——他们想知道的是"要做什么",而不是一串 ID。因此,每次调用
get_todo_list
拿到结果后,都要紧接着用返回的 todo_id 列表调用
get_todo_detail
获取完整详情(内容、分派人等),然后再向用户展示。这不是可选步骤,而是完成用户请求的必要环节。
人员 ID 转姓名(关键步骤)
:
get_todo_detail
返回结果中的
follower_id
creator_id
都是系统内部 ID,直接展示给用户毫无意义——用户不认识这些 ID,只认识姓名。因此在向用户展示待办详情之前,必须先调用
wecomcli-contact
技能获取通讯录,将所有
follower_id
creator_id
匹配为真实姓名。具体做法:
wecom-cli contact get_userlist
'{}'
如果通讯录中找不到某个 ID,展示时标注"未知用户(ID:xxx)"即可。
分页未拉完时必须提醒用户
:
get_todo_list
接口是分页的,不要求一次性拉完所有数据。但如果响应中
has_more
true
,说明后面还有待办没有返回——这时你在展示当前结果的同时,必须明确告诉用户"还有更多待办未显示,是否需要继续查看?"。用户可能不知道后面还有数据,如果你不说,他们会以为看到的就是全部,这会导致遗漏重要待办。
重试策略
遭遇"返回 HTTP 错误"或"HTTP 请求失败"时,主动重试,最多重试三次。 命令详细说明 1. 查询待办列表 (get_todo_list) 查询当前用户的待办列表,支持按时间过滤和分页。返回的是待办概要信息(不含内容和分派人)。 执行命令 wecom-cli todo get_todo_list '' 入参说明 参数 类型 必填 说明 create_begin_time string ❌ 创建开始时间,格式: YYYY-MM-DD HH:mm:ss create_end_time string ❌ 创建结束时间,格式: YYYY-MM-DD HH:mm:ss remind_begin_time string ❌ 提醒开始时间,格式: YYYY-MM-DD HH:mm:ss remind_end_time string ❌ 提醒结束时间,格式: YYYY-MM-DD HH:mm:ss limit number ❌ 最大返回数量,默认 10,最大 20 cursor string ❌ 分页游标,首次请求不传,后续传入上次响应的 next_cursor 返回格式 { "errcode" : 0 , "errmsg" : "ok" , "index_list" : [ { "todo_id" : "TODO_ID" , "todo_status" : 1 , "user_status" : 1 , "creator_id" : "CREATOR_ID" , "remind_time" : "2025-06-01 09:00:00" , "create_time" : "2025-01-15 10:30:00" , "update_time" : "2025-01-16 14:20:00" } ] , "next_cursor" : "NEXT_CURSOR" , "has_more" : false } 返回字段说明 字段 类型 说明 index_list array 待办列表 index_list[].todo_id string 待办唯一 ID index_list[].todo_status number 待办状态: 0 -已完成, 1 -进行中, 2 -已删除 index_list[].user_status number 用户状态: 0 -拒绝, 1 -接受, 2 -已完成 index_list[].creator_id string 创建人 ID index_list[].remind_time string 提醒时间 index_list[].create_time string 创建时间 index_list[].update_time string 更新时间 next_cursor string 下一页游标 has_more boolean 是否还有更多记录 列表返回的是待办概要信息(不含内容和分派人)。拿到列表后,必须调用 get_todo_detail 获取完整详情再展示给用户。 2. 获取待办详情 (get_todo_detail) 根据待办 ID 列表批量查询完整详情,包含待办内容和分派人信息。 执行命令 wecom-cli todo get_todo_detail '' 入参说明 参数 类型 必填 说明 todo_id_list array ✅ 待办 ID 列表,最多 20 个 调用示例 wecom-cli todo get_todo_detail '{"todo_id_list": ["TODO_ID_1", "TODO_ID_2"]}' 返回格式 { "errcode" : 0 , "errmsg" : "ok" , "data_list" : [ { "todo_id" : "TODO_ID" , "todo_status" : 1 , "content" : "完成Q2规划文档" , "follower_list" : { "followers" : [ { "follower_id" : "FOLLOWER_ID" , "follower_status" : 1 , "update_time" : "2025-01-16 14:20:00" } ] } , "creator_id" : "CREATOR_ID" , "user_status" : 1 , "remind_time" : "2025-06-01 09:00:00" , "create_time" : "2025-01-15 10:30:00" , "update_time" : "2025-01-16 14:20:00" } ] } 返回字段说明 字段 类型 说明 data_list array 待办详情列表,最多 20 条 data_list[].todo_id string 待办 ID data_list[].todo_status number 待办状态: 0 -已完成, 1 -进行中, 2 -已删除 data_list[].content string 待办内容 data_list[].follower_list.followers array 分派人列表 data_list[].follower_list.followers[].follower_id string 分派人 ID(即 userid)— 展示前需通过 wecomcli-contact 转为姓名 data_list[].follower_list.followers[].follower_status number 分派人状态: 0 -拒绝, 1 -接受, 2 -已完成 data_list[].follower_list.followers[].update_time string 分派人状态更新时间 data_list[].creator_id string 创建人 ID — 展示前需通过 wecomcli-contact 转为姓名 data_list[].user_status number 当前用户状态 data_list[].remind_time string 提醒时间 data_list[].create_time string 创建时间 data_list[].update_time string 更新时间 3. 创建待办 (create_todo) 创建一个新的待办事项,可指定内容、分派人和提醒时间。 执行命令 wecom-cli todo create_todo '' 入参说明 参数 类型 必填 说明 content string ✅ 待办内容 follower_list object ❌ 分派人列表,格式见注意事项第 6 条 remind_time string ❌ 提醒时间,格式: YYYY-MM-DD HH:mm:ss 调用示例 wecom-cli todo create_todo '{"content": "<待办的内容>", "remind_time": "2025-06-01 09:00:00"}' 返回格式 { "errcode" : 0 , "errmsg" : "ok" , "todo_id" : "TODO_ID" } 返回字段说明 字段 类型 说明 todo_id string 新创建的待办唯一 ID 4. 更新待办 (update_todo) 修改已有待办事项的内容、分派人、状态或提醒时间。 执行命令 wecom-cli todo update_todo '' 入参说明 参数 类型 必填 说明 todo_id string ✅ 待办 ID content string ❌ 新的待办内容 follower_list object ❌ 新的分派人列表(全量替换,非追加),格式见注意事项第 6 条。若要新增分派人,需先查出现有分派人,合并后一起提交 todo_status number ❌ 新的待办状态: 0 -已完成, 1 -进行中, 2 -已删除。删除请使用 delete_todo remind_time string ❌ 新的提醒时间 调用示例 wecom-cli todo update_todo '{"todo_id": "TODO_ID", "content": "<待办的内容>", "remind_time": "2025-07-01 09:00:00"}' 返回格式 { "errcode" : 0 , "errmsg" : "ok" } 5. 删除待办 (delete_todo) 删除指定的待办事项。 执行命令 wecom-cli todo delete_todo '' 入参说明 参数 类型 必填 说明 todo_id string ✅ 待办 ID 调用示例 wecom-cli todo delete_todo '{"todo_id": "TODO_ID"}' 返回格式 { "errcode" : 0 , "errmsg" : "ok" } 删除操作不可撤销,执行前应向用户确认。 6. 变更用户待办状态 (change_todo_user_status) 更改当前用户在某个待办中的状态(拒绝/接受/已完成)。 执行命令 wecom-cli todo change_todo_user_status '' 入参说明 参数 类型 必填 说明 todo_id string ✅ 待办 ID user_status number ✅ 用户状态: 0 -拒绝, 1 -接受, 2 -已完成 调用示例 wecom-cli todo change_todo_user_status '{"todo_id": "TODO_ID", "user_status": 2}' 返回格式 { "errcode" : 0 , "errmsg" : "ok" } 返回字段说明 字段 类型 说明 errcode number 返回码, 0 表示成功 errmsg string 错误信息,成功时为 "ok" 典型工作流 完整的工作流步骤、命令示例和展示格式详见 examples/workflows.md 工作流 适用场景 关键要点 工作流 1:查看待办列表 "看看我最近的待办" 标准三步:get_todo_list → get_todo_detail → contact 转姓名;检查 has_more 分页 工作流 2:按时间范围查询 "这个月创建的待办有哪些?" 传入 create_begin_time / create_end_time 过滤,后续同工作流 1 工作流 3:创建待办并分派 "帮我创建一个待办,让张三完成需求文档" 先通过 wecomcli-contact 查 userid,再 create_todo 带 follower_list 工作流 4:标记待办完成 "把这个待办标记为完成" 区分场景 A(改 todo_status=0)和场景 B(改 user_status=2) 工作流 5:更新待办 "把提醒时间改到下周五" 先查列表+详情定位目标,再 update_todo 工作流 6:删除待办 "删掉那个待办" 删除前必须向用户确认,不可撤销 工作流 7:分页获取 待办数量超过单页上限 通过 cursor 循环拉取,未拉完必须提醒用户 注意事项 todo_id 来源规则 todo_id 必须来自 get_todo_list 返回的结果,禁止自行推测或构造 用户通常提供待办内容描述而非 ID,应先通过 get_todo_list 查列表再匹配 若匹配到多个相似待办,展示候选列表让用户确认 follower_id 来源规则 follower_id 即 userid ,必须通过 wecomcli-contact 技能的 get_userlist 接口获取 禁止根据用户姓名自行猜测 userid 若搜索结果有多个同名人员,展示候选列表让用户选择 人员 ID 必须转姓名 返回结果中的 follower_id 和 creator_id 是系统内部标识,用户无法识别 展示待办详情前,先通过 wecom-cli contact get_userlist '{}' 获取通讯录 用通讯录的 userid 匹配 follower_id / creator_id ,用 name 替换展示 如果通讯录中找不到某个 ID,展示时标注"未知用户(ID:xxx)" 时间格式 所有时间参数使用 YYYY-MM-DD HH:mm:ss 格式 用户说"明天"、"下周一"等相对时间时,根据当前日期推算具体日期 状态值含义 待办状态( todo_status ): 0 -已完成, 1 -进行中, 2 -已删除 用户状态( user_status ): 0 -拒绝, 1 -接受, 2 -已完成 分派人状态( follower_status ): 0 -拒绝, 1 -接受, 2 -已完成 follower_list 的格式 (作为输入参数的时候) "follower_list" : { "followers" : [ { "follower_id" : "FOLLOWER_ID" , "follower_status" : 1 } ] } follower_id 即 userid,需要通过 wecomcli-contact 查询获取,禁止自行猜测或构造。 破坏性操作确认 删除待办( delete_todo )前必须向用户确认 变更状态为"拒绝"( user_status=0 )前建议向用户确认 必须查详情 get_todo_list 返回的是概要信息(不含内容和分派人),拿到列表后必须紧接着调用 get_todo_detail 获取完整内容再展示给用户,不要只展示列表概要 分页未拉完必须提醒 如果返回的 has_more 为 true ,在向用户展示结果时必须明确说明"还有更多待办未显示"并询问用户是否需要继续查看 单次详情上限 todo_id_list 最多传 20 个 ID,超过需要分批请求 错误处理 若 errcode 不为 0 ,说明接口调用失败,告知用户 errmsg 中的错误信息 通讯录查询 涉及分派人时,需先通过 wecomcli-contact 技能的 get_userlist 接口获取全量通讯录成员,再按姓名/别名本地筛选匹配出对应的 userid 。该接口无入参,返回当前用户可见范围内的成员列表(含 userid , name , alias )
返回排行榜