$npx -y skills add WecomTeam/wecom-cli --skill wecomcli-doc企业微信文档(doc)管理技能。提供普通文档的新建、内容读取(Markdown)、内容覆写能力。适用场景:(1) 从零新建空白文档 (2) 以 Markdown 格式读取文档完整内容 (3) 用 Markdown 覆写文档正文。支持通过 docid 或文档 URL 定位文档。当用户提到「企业微信文档」「企微文档」「创建文档」「写个文档」,或链接形如 https://doc.weixin.qq.com/doc/xxx 时触发该技能。注意:在线表格(/sheet/*)请用 wecomcli-sheet;智能表格(/smartsheet/*)请
| 1 | # 企业微信文档管理 |
| 2 | |
| 3 | > `wecom-cli` 是企业微信提供的命令行程序,所有操作通过执行 `wecom-cli` 命令完成。 |
| 4 | |
| 5 | 资源型技能,负责普通doc文档的新建、内容读取与覆写。文档接口支持通过 `docid` 或 `url` 二选一定位文档。 |
| 6 | |
| 7 | ## URL 品类识别与接口路由 |
| 8 | |
| 9 | 企业微信文档有多种品类,**URL 格式不同,所用的接口/技能也不同**。请通过 URL 严格区分: |
| 10 | |
| 11 | | URL 模式 | 品类 | 处理方式 | |
| 12 | |---|---|---| |
| 13 | | `https://doc.weixin.qq.com/doc/*` | **文档** | **本 skill** | |
| 14 | | `https://doc.weixin.qq.com/sheet/*` | **在线表格** | 参阅 `wecomcli-sheet` skill | |
| 15 | | `https://doc.weixin.qq.com/smartsheet/*` | **智能表格** | 参阅 `wecomcli-smartsheet` skill | |
| 16 | | `https://doc.weixin.qq.com/smartpage/*` | **智能文档**(原名智能主页) | 参阅 `wecomcli-smartpage` skill | |
| 17 | |
| 18 | ## 调用方式 |
| 19 | |
| 20 | 通过 `wecom-cli` 调用,品类为 `doc`: |
| 21 | |
| 22 | ```bash |
| 23 | wecom-cli doc <tool_name> '<json_params>' |
| 24 | ``` |
| 25 | |
| 26 | ## 返回格式说明 |
| 27 | |
| 28 | 所有接口返回 JSON 对象,包含以下公共字段: |
| 29 | |
| 30 | | 字段 | 类型 | 说明 | |
| 31 | |------|------|------| |
| 32 | | `errcode` | integer | 返回码,`0` 表示成功,非 `0` 表示失败 | |
| 33 | | `errmsg` | string | 错误信息,成功时为 `"ok"` | |
| 34 | |
| 35 | 当 `errcode` 不为 `0` 时,说明接口调用失败,可重试 1 次;若仍失败,将 `errcode` 和 `errmsg` 展示给用户。 |
| 36 | |
| 37 | ### 特殊错误码 |
| 38 | |
| 39 | | errcode | errmsg | 含义 | 处理方式 | |
| 40 | |---------|--------|------|----------| |
| 41 | | `851002` | `incompatible doc type` | 文档品类与所调用的接口不匹配 | 根据文档 URL 重新确认品类(参见上方「URL 品类识别与接口路由」表),然后跳转到该品类对应的 skill | |
| 42 | |
| 43 | ## 接口详述 |
| 44 | |
| 45 | ### 新建文档 |
| 46 | |
| 47 | 新建一篇空白企微文档(`doc_type` 固定为 3)。创建成功后返回 `docid` 和 `url`。 |
| 48 | |
| 49 | **命令** |
| 50 | |
| 51 | ```bash |
| 52 | wecom-cli doc create_doc '<JSON 参数>' |
| 53 | ``` |
| 54 | |
| 55 | **参数** |
| 56 | |
| 57 | | 参数 | 类型 | 必填 | 默认值 | 说明 | |
| 58 | |---|---|---|---|---| |
| 59 | | `doc_type` | int | 是 | — | 固定传 `3`(文档) | |
| 60 | | `doc_name` | string | 是 | — | 文档标题,最多 255 个字符,超过会被截断 | |
| 61 | |
| 62 | **返回** |
| 63 | |
| 64 | | 字段 | 类型 | 说明 | |
| 65 | |---|---|---| |
| 66 | | `docid` | string | 新建文档的 docid,需妥善保存 | |
| 67 | | `url` | string | 新建文档的访问链接 | |
| 68 | |
| 69 | **注意事项** |
| 70 | |
| 71 | - 本接口仅创建**空白**文档,不携带初始内容;如需写入正文,请在创建后调用 `edit_doc_content`。 |
| 72 | |
| 73 | ### 读取完整内容 |
| 74 | |
| 75 | 获取文档的完整内容数据,统一以 Markdown 格式返回。采用**异步轮询机制**:首次调用无需传 `task_id`,接口返回 `task_id`;若 `task_done` 为 `false`,需携带该 `task_id` 再次调用,直到 `task_done` 为 `true` 时返回完整内容。 |
| 76 | |
| 77 | **命令** |
| 78 | |
| 79 | ```bash |
| 80 | wecom-cli doc get_doc_content '<JSON 参数>' |
| 81 | ``` |
| 82 | |
| 83 | **参数** |
| 84 | |
| 85 | | 字段 | 类型 | 必填 | 默认值 | 语义 | |
| 86 | |---|---|---|---|---| |
| 87 | | `docid` | string | 与 `url` 二选一 | — | 文档的 docid | |
| 88 | | `url` | string | 与 `docid` 二选一 | — | 文档的访问链接 | |
| 89 | | `type` | int | 是 | — | 内容返回格式,固定传 `2`(Markdown) | |
| 90 | | `task_id` | string | 否 | — | 任务 ID,首次不传,轮询时填上次返回的 `task_id` | |
| 91 | |
| 92 | **返回** |
| 93 | |
| 94 | | 字段 | 类型 | 说明 | |
| 95 | |---|---|---| |
| 96 | | `content` | string | `task_done` 为 `true` 时返回的完整 Markdown 内容 | |
| 97 | | `task_id` | string | 任务 ID,未完成时用于下次轮询 | |
| 98 | | `task_done` | bool | 任务是否完成,`false` 时需携带 `task_id` 继续轮询 | |
| 99 | |
| 100 | **使用规则** |
| 101 | |
| 102 | - 首次调用不传 `task_id`;若 `task_done` 为 `false`,记录 `task_id` 后携带其再次调用,直到 `task_done` 为 `true` 取 `content`。 |
| 103 | |
| 104 | ### 覆写文档内容 |
| 105 | |
| 106 | 用 Markdown 内容覆写文档正文。此操作为**覆写**,会替换文档全部内容。 |
| 107 | |
| 108 | **命令** |
| 109 | |
| 110 | ```bash |
| 111 | wecom-cli doc edit_doc_content '<JSON 参数>' |
| 112 | ``` |
| 113 | |
| 114 | **参数** |
| 115 | |
| 116 | | 字段 | 类型 | 必填 | 默认值 | 语义 | |
| 117 | |---|---|---|---|---| |
| 118 | | `docid` | string | 与 `url` 二选一 | — | 文档的 docid | |
| 119 | | `url` | string | 与 `docid` 二选一 | — | 文档的访问链接 | |
| 120 | | `content` | string | 是 | — | 覆写的文档内容(Markdown) | |
| 121 | | `content_type` | int | 是 | — | 内容类型,固定传 `1`(Markdown) | |
| 122 | |
| 123 | **使用规则** |
| 124 | |
| 125 | - 此操作为覆写,会替换文档全部内容;建议先用 `get_doc_content` 了解当前内容再编辑。 |
| 126 | - 成功判定:以返回的 `errcode == 0` 为准;非 0 时按「返回格式说明」处理(可重试 1 次)。 |
| 127 | |
| 128 | ## 跨技能依赖 |
| 129 | |
| 130 | | 依赖技能 | 典型协作场景 | 数据流向 | |
| 131 | |---|---|---| |
| 132 | | `wecomcli-msg` | 用户要求把文档链接发给某人/某群 | 本 skill 新建后返回 `url` → `wecomcli-msg` 发送链接 | |