dingtalk-doc
by @shyzhen
钉钉文档管理技能。当用户发送的消息中包含 alidocs.dingtalk.com 链接、要求总结/读取/查看/更新钉钉文档或钉钉知识库文档,或当前上下文已明确对象是钉钉文档时使用。关键词:钉钉文档、钉钉知识库、alidocs、总结、读取、查看、更新、修改、文档、链接。
1. "无法获取文档信息"错误:
- 确保传入的是 nodeId(从文档链接 /i/nodes/xxx 提取)
- --workspaceId 不能替代 nodeId,只能作为额外一致性校验
2. "paramError" / JSON 解析失败:
- --element 必须是合法的 JSON 格式,检查引号转义
- PowerShell 中用单引号包裹:--element='{"type":"paragraph"}'
3. 更新失败(nodeNotExist 等):
- 尝试传入真实的 docKey:update-content --nodeId=xxx --docKey=真实 docKey --content="..."
- createDoc 返回的 docKey 和 nodeId 可能不同
4. nodeId 和 docKey 到底有什么区别?
- nodeId: 目录树节点 ID(wiki_2.0 API 用),用于定位文档、获取 workspaceId 和节点名、执行白名单检查
- docKey: 文档内容标识符(suites/documents API 用),用于实际读写内容
- 经验:大多数情况下 nodeId 可直接用作 docKey,少数情况需要真实 docKey
5. 为什么没有 append-text?
- 当前公开接口 POST /v1.0/doc/suites/documents/{docKey}/paragraphs/{blockId}/text 在真实测试中返回 InvalidAction.NotFound
- 因此本 skill 不再承诺 append-text,请使用 insert-block 或 modify-block
clawhub install dingtalk-doc