$npx -y skills add WecomTeam/wecom-cli --skill wecomcli-smartpage企业微信智能文档(原名智能主页,smartpage)管理技能。提供智能文档的创建(将本地 Markdown 文件发布为智能文档)与内容导出(异步导出为 Markdown)能力。适用场景:(1) 将一个或多个本地 Markdown 文件创建为智能文档 (2) 异步导出智能文档内容为 Markdown。支持通过 docid 或文档 URL 定位文档。当用户明确提到「智能文档」「智能主页」,或链接形如 https://doc.weixin.qq.com/smartpage/xxx 时触发该技能。注意:普通文档(/doc/*)请用 `wecomcli-d
| 1 | # 企业微信智能文档管理 |
| 2 | |
| 3 | > `wecom-cli` 是企业微信提供的命令行程序,所有操作通过执行 `wecom-cli` 命令完成。 |
| 4 | |
| 5 | 资源型技能,负责**智能文档**(原名智能主页,`/smartpage/*`)的创建与内容导出。 |
| 6 | |
| 7 | ## 调用方式 |
| 8 | |
| 9 | 通过 `wecom-cli` 调用,品类为 `doc`: |
| 10 | |
| 11 | ```bash |
| 12 | wecom-cli doc <tool_name> '<json_params>' |
| 13 | ``` |
| 14 | |
| 15 | ## 返回格式说明 |
| 16 | |
| 17 | 所有接口返回 JSON 对象,包含以下公共字段: |
| 18 | |
| 19 | | 字段 | 类型 | 说明 | |
| 20 | |------|------|------| |
| 21 | | `errcode` | integer | 返回码,`0` 表示成功,非 `0` 表示失败 | |
| 22 | | `errmsg` | string | 错误信息,成功时为 `"ok"` | |
| 23 | |
| 24 | 当 `errcode` 不为 `0` 时,说明接口调用失败,可重试 1 次;若仍失败,将 `errcode` 和 `errmsg` 展示给用户。 |
| 25 | |
| 26 | ### 特殊错误码 |
| 27 | |
| 28 | | errcode | errmsg | 含义 | 处理方式 | |
| 29 | |---------|--------|------|----------| |
| 30 | | `851002` | `incompatible doc type` | 文档品类与所调用的接口不匹配 | 确认目标 URL 为 `/smartpage/*`;若不是,请跳转到对应品类的 skill | |
| 31 | |
| 32 | ## 接口详述 |
| 33 | |
| 34 | ### 创建智能文档 |
| 35 | |
| 36 | 创建智能文档(原名智能主页),支持传入标题和多个子页面。每个子页面可指定标题、内容类型和本地文件路径。创建成功返回 `docid` 和 `url`。 |
| 37 | |
| 38 | > **特殊语法**:此命令必须使用 `+smartpage_create`(带 `+` 前缀),加号不可省略;该 `+` 仅适用于此命令,不要泛化到其他 `doc` 子命令。 |
| 39 | |
| 40 | **命令** |
| 41 | |
| 42 | ```bash |
| 43 | wecom-cli doc +smartpage_create '<JSON 参数>' |
| 44 | ``` |
| 45 | |
| 46 | **参数** |
| 47 | |
| 48 | | 参数 | 类型 | 必填 | 默认值 | 说明 | |
| 49 | |---|---|---|---|---| |
| 50 | | `title` | string | 否 | — | 智能文档标题 | |
| 51 | | `pages` | array | 是 | — | 子页面列表 | |
| 52 | | `pages[].page_title` | string | 否 | — | 子页面标题 | |
| 53 | | `pages[].content_type` | int | 否 | 1 | 内容类型:1-Markdown,0-Text(纯文本) | |
| 54 | | `pages[].page_filepath` | string | 否 | — | 子页面内容对应的本地文件路径 | |
| 55 | |
| 56 | **注意事项** |
| 57 | |
| 58 | - `content_type` **必须与文件实际内容匹配**:`.md` 文件或包含 Markdown 语法的内容必须传 `1`,仅纯文本才传 `0`。绝大多数场景应传 `1`。 |
| 59 | - `docid` 仅在创建时返回,需妥善保存。 |
| 60 | - 每个子页面的 Markdown 文件大小不得超过 **10MB**,超过会导致创建失败;如文件过大,需先拆分为多个子页面再创建。 |
| 61 | - 智能文档还支持背景块(`<card>`)、分栏(`<grid>`)等扩展语法,详见 [references/smartpage-create.md](references/smartpage-create.md)。 |
| 62 | |
| 63 | ### 导出智能文档内容 |
| 64 | |
| 65 | 获取智能文档的完整内容,导出为 Markdown。采用**异步两步操作**:先用 `smartpage_export_task` 提交导出任务拿到 `task_id`,再用 `smartpage_get_export_result` 轮询任务,直到 `task_done` 为 `true` 时返回 `content`。 |
| 66 | |
| 67 | **第一步:提交导出任务** |
| 68 | |
| 69 | ```bash |
| 70 | # 通过 docid |
| 71 | wecom-cli doc smartpage_export_task '{"docid": "DOCID", "content_type": 1}' |
| 72 | # 通过 url |
| 73 | wecom-cli doc smartpage_export_task '{"url": "https://doc.weixin.qq.com/smartpage/xxx", "content_type": 1}' |
| 74 | ``` |
| 75 | |
| 76 | | 参数 | 类型 | 必填 | 默认值 | 说明 | |
| 77 | |---|---|---|---|---| |
| 78 | | `docid` | string | 与 `url` 二选一 | — | 智能文档的 docid | |
| 79 | | `url` | string | 与 `docid` 二选一 | — | 智能文档的访问链接 | |
| 80 | | `content_type` | int | 是 | — | 导出内容格式,目前仅支持 `1`(Markdown) | |
| 81 | |
| 82 | **第二步:轮询导出结果** |
| 83 | |
| 84 | ```bash |
| 85 | wecom-cli doc smartpage_get_export_result '{"task_id": "TASK_ID"}' |
| 86 | ``` |
| 87 | |
| 88 | | 参数 | 类型 | 必填 | 默认值 | 说明 | |
| 89 | |---|---|---|---|---| |
| 90 | | `task_id` | string | 是 | — | 由 `smartpage_export_task` 返回的任务 ID | |
| 91 | |
| 92 | **使用规则** |
| 93 | |
| 94 | - 第一步获取 `task_id` 后,携带其调用第二步;若 `task_done` 为 `false` 则继续轮询,直到 `task_done` 为 `true`,返回的 `content` 字段即为完整 Markdown 内容。 |
| 95 | |
| 96 | 参见 [API 详情](references/smartpage-export.md)。 |
| 97 | |
| 98 | ## 跨技能依赖 |
| 99 | |
| 100 | | 依赖技能 | 典型协作场景 | 数据流向 | |
| 101 | |---|---|---| |
| 102 | | `wecomcli-msg` | 用户要求把智能文档链接发给某人/某群 | 本 skill 创建后返回 `url` → `wecomcli-msg` 发送链接 | |