dingtalk-cli
INLINECODE0 是面向 agent 的钉钉文档 CLI,覆盖:
- - 知识库列表与详情
- 节点查询、URL 反查
- 文档创建、正文读取、Markdown 覆盖写入、删除
- INLINECODE1 钉钉表格的 workbook/sheet/range 读取
- 文档成员添加、更新、移除
安装
CODEBLOCK0
如需从源码开发安装:
CODEBLOCK1
启动前配置
优先使用命令保存配置:
CODEBLOCK2
如果只有 userId:
CODEBLOCK3
配置会写到 ~/.dingtalk-cli/config.json。也可用环境变量覆盖:
- - INLINECODE4
- INLINECODE5
- INLINECODE6
- INLINECODE7
注意:
- - 写操作必须带真实用户身份
operatorId,且应为 INLINECODE9 - 输出中不会打印完整凭证,只显示脱敏值
常用命令
CODEBLOCK4
Agent 使用约定
- - 优先使用 INLINECODE10
- 对破坏性命令显式传 INLINECODE11
- 读取普通文档用 INLINECODE12
- 读取
.axls 用 INLINECODE14 - 若
doc read 返回“目标节点是 .axls”,不要重试同一命令,直接切到 INLINECODE17 - 对创建命令返回的结果,立即读写时优先使用 INLINECODE18
- 对创建后立即删除的场景,优先使用返回的 INLINECODE19
错误提示
- -
MissingoperatorId:未配置 operator unionId - INLINECODE21 :把 userId 当成 unionId 传了
- INLINECODE22 :应用权限不够
- INLINECODE23 :目标不是普通文档,通常应改走 INLINECODE24
dingtalk-cli
dingtalk-cli 是面向 agent 的钉钉文档 CLI,覆盖:
- - 知识库列表与详情
- 节点查询、URL 反查
- 文档创建、正文读取、Markdown 覆盖写入、删除
- .axls 钉钉表格的 workbook/sheet/range 读取
- 文档成员添加、更新、移除
安装
bash
pip install dingtalk-cli
如需从源码开发安装:
bash
pip install -e .
启动前配置
优先使用命令保存配置:
bash
dingtalk-cli auth setup \
--app-key \
--app-secret \
--operator-union-id
如果只有 userId:
bash
dingtalk-cli auth setup \
--app-key \
--app-secret \
--operator-user-id
配置会写到 ~/.dingtalk-cli/config.json。也可用环境变量覆盖:
- - DINGTALKAPPKEY
- DINGTALKAPPSECRET
- DINGTALKOPERATORID
- DINGTALKCLICONFIG_DIR
注意:
- - 写操作必须带真实用户身份 operatorId,且应为 unionId
- 输出中不会打印完整凭证,只显示脱敏值
常用命令
bash
看知识库
dingtalk-cli workspace list --all
用 URL 反查节点
dingtalk-cli node resolve-url https://alidocs.dingtalk.com/i/nodes/xxx
读取文档正文
dingtalk-cli doc read --url https://alidocs.dingtalk.com/i/nodes/xxx
覆盖写入文档
dingtalk-cli doc overwrite --doc-key
--content-file /abs/path/content.md --yes
若立即删除刚创建的文档,优先使用 create 返回的 workspaceid + nodeid
dingtalk-cli doc delete --workspace-id ID> --node-id ID> --yes
读取 .axls 表格
dingtalk-cli workbook read --node-id --range A1:Z80
添加成员
dingtalk-cli member add --node-id ID> --member-id ID> --role editor
Agent 使用约定
- - 优先使用 --json
- 对破坏性命令显式传 --yes
- 读取普通文档用 doc
- 读取 .axls 用 workbook
- 若 doc read 返回“目标节点是 .axls”,不要重试同一命令,直接切到 workbook
- 对创建命令返回的结果,立即读写时优先使用 dockey
- 对创建后立即删除的场景,优先使用返回的 workspaceid + node_id
错误提示
- - MissingoperatorId:未配置 operator unionId
- paramError:把 userId 当成 unionId 传了
- Forbidden.AccessDenied.AccessTokenPermissionDenied:应用权限不够
- Target document should be doc.:目标不是普通文档,通常应改走 workbook