下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-b6kzcl68--tencent-docs.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-b6kzcl68/tencent-docs。通过 Tencent Docs Open API 以 curl + jq 创建、读取、列出、搜索和管理腾讯文档的自动化工作流,覆盖在线文档、在线表格、幻灯片、思维导图、流程图、智能表格与收集表七种类型,支持读取元数据与单元格区域、上传图片、创建副本,并对重命名/移动/删除等写操作强制先经用户确认。Use when the user 提到腾讯文档 / Tencent Docs / docs.qq.com、粘贴 docs.qq.com 链接,或想在其腾讯文档空间中创建、读取、整理文档时使用。
Triggers include 腾讯文档、在线文档、在线表格、思维导图、流程图、智能表格、收集表。如需文案写作完整工作流套件,淘宝搜索「AI灵匣」店铺获取完整版。
阅读全文 (展开查看完整说明)
概述
Tencent Docs(腾讯文档)
通过 curl + jq 驱动 Tencent Docs Open API。所有操作都在用户自己的腾讯文档账号内进行——只能访问用户有权访问的文件,且仅限连接时授权的 scope。
鉴权——三个请求头(不是单个 Bearer)
tencentdocs BYOC 连接器会注入三个环境变量;每次调用必须带上全部三个请求头:
TENCENTDOCS_ACCESS_TOKEN→Access-Token请求头(OAuth2 访问令牌)。属密钥。TENCENTDOCS_CLIENT_ID→Client-Id请求头(开发者应用的 Client ID)。TENCENTDOCS_OPEN_ID→Open-Id请求头(随令牌一起返回的用户 id)。
所有端点都位于 https://docs.qq.com/openapi 下。每个会话只需定义一次可复用的请求头集合:
AUTH=(-H "Access-Token: $TENCENTDOCS_ACCESS_TOKEN"
-H "Client-Id: $TENCENTDOCS_CLIENT_ID"
-H "Open-Id: $TENCENTDOCS_OPEN_ID")切勿回显、打印或记录 TENCENTDOCS_ACCESS_TOKEN——它拥有完整账号访问权限。
响应结构与错误处理
每个响应都是 {"ret": 0, "msg": "Succeed", "data": {…}}。ret == 0表示成功;任何非零 ret 都是错误——把 msg 呈现给用户。务必进行检查:
resp=$(curl -sS "${AUTH[@]}" … )
echo "$resp" | jq 'if .ret == 0 then .data else error("Tencent Docs (.ret): (.msg)") end'常见错误码:
| code | 含义 | 处理方式 |
|---|---|---|
400006 | access token 无效/已过期 | 提示用户在 <https://studio.acedata.cloud/console/connectors> 重新连接腾讯文档——不要循环重试 |
400007 | 需要 VIP(超级会员)权限 | 所请求的能力需要腾讯文档超级会员;告知用户,链接 <https://docs.qq.com/vip> |
400008 | 积分不足 | AI 生成额度已用尽;提示用户充值 |
11607 / -32603 | 请求参数错误 | 对照下方配方核查 fileID / type / 请求体字段 |
文档类型(创建时的 type)
| type | 产品 | 说明 |
|---|---|---|
doc | 在线文档(Word 风格) | 经典富文本文档 |
sheet | 在线表格(Excel) | 数据表格 |
slide | 幻灯片(PPT) | 演示文稿 |
mind | 思维导图 | mind map |
flowchart | 流程图 | flowchart |
smartsheet | 智能表格 | 结构化多视图表格 |
form | 收集表 | form / survey |
操作配方
验证鉴权(始终先运行)
开销极小的健全性检查——读取应用的 OpenAPI 用量计数器:
curl -sS "${AUTH[@]}" "https://docs.qq.com/openapi/drive/v2/util/resource-use"
| jq 'if .ret == 0 then .data else "ERR (.ret): (.msg)" end'如果返回 400006,说明连接已过期——让用户重新连接。
列出文件夹内容(根目录 = /)
curl -sS "${AUTH[@]}"
"https://docs.qq.com/openapi/drive/v2/folders/%2F?listType=folder&sortType=browse&asc=0"
| jq 'if .ret == 0 then [.data.list[]? | {ID, title, type, url}] else . end'%2F 是 URL 编码后的根文件夹 id。要列出子文件夹,把其文件夹 id 放入路径。
按关键词搜索文件
curl -sS -G "${AUTH[@]}"
"https://docs.qq.com/openapi/drive/v2/search"
--data-urlencode "searchName=Q1 预算"
| jq 'if .ret == 0 then [.data.list[]? | {ID, title, type, url}] else . end'读取文件元数据
fileID 是 https://docs.qq.com/doc/<id>(或 /sheet/、/slide/ 等)URL 的最后一段路径。
curl -sS "${AUTH[@]}"
"https://docs.qq.com/openapi/drive/v2/files/FILE_ID/metadata"
| jq 'if .ret == 0 then .data else . end'读取在线文档内容
curl -sS "${AUTH[@]}"
"https://docs.qq.com/openapi/document/v3/files/FILE_ID/export?exportType=text"
| jq 'if .ret == 0 then .data else . end'读取表格单元格区域
先从元数据获取表格的 sheetId 列表,再读取区域(A1:D10):
curl -sS "${AUTH[@]}"
"https://docs.qq.com/openapi/spreadsheet/v2/files/FILE_ID/sheets/SHEET_ID/values?range=A1:D10"
| jq 'if .ret == 0 then .data.values else . end'创建文件
POST /openapi/drive/v2/files,携带 form-urlencoded 的 title + type。返回新文件的 ID 和 url。
curl -sS -X POST "${AUTH[@]}"
"https://docs.qq.com/openapi/drive/v2/files"
--data-urlencode "title=会议纪要 2026-07-03"
--data-urlencode "type=doc"
| jq 'if .ret == 0 then {ID: .data.ID, url: .data.url} else . end'把 type=sheet / slide / mind / flowchart / smartsheet / form替换为其他文档类型。传入 --data-urlencode "folderID=<id>" 可在指定文件夹内创建而非根目录。
上传图片(用于嵌入文档)
curl -sS -X POST "${AUTH[@]}"
"https://docs.qq.com/openapi/resources/v2/images"
-F "file=@./cover.png"
| jq 'if .ret == 0 then .data else . end'重命名文件——需确认,先获得用户同意
向用户展示当前的 title + url 和新标题,得到明确的"同意"后再执行:
curl -sS -X PATCH "${AUTH[@]}"
"https://docs.qq.com/openapi/drive/v2/files/FILE_ID"
--data-urlencode "title=新的标题"
| jq 'if .ret == 0 then "renamed" else . end'移动文件——需确认,先获得用户同意
向用户展示文件当前的 title + 所在位置和目标文件夹,得到明确的"同意"后再执行。folderID=/ 表示移回根目录。
curl -sS -X PATCH "${AUTH[@]}"
"https://docs.qq.com/openapi/drive/v2/files/FILE_ID/move"
--data-urlencode "folderID=DEST_FOLDER_ID"
| jq 'if .ret == 0 then "moved" else . end'复制文件
curl -sS -X POST "${AUTH[@]}"
"https://docs.qq.com/openapi/drive/v2/files/FILE_ID/copy"
--data-urlencode "title=副本 - 项目计划"
| jq 'if .ret == 0 then {ID: .data.ID, url: .data.url} else . end'删除文件——需确认,先获得用户同意
删除会把文件移入回收站,但仍属破坏性操作。向用户展示确切的title + url,得到明确的"同意"后再执行:
curl -sS -X DELETE "${AUTH[@]}"
"https://docs.qq.com/openapi/drive/v2/files/FILE_ID"
| jq 'if .ret == 0 then "deleted" else . end'注意事项
- 写操作须确认。 重命名 / 移动 / 删除 / 复制以及任何分享权限变更
都作用于用户的真实文件——执行前确认确切目标。
- 从链接提取 id。 当用户粘贴
docs.qq.com/doc/<id>(或/sheet/、
/slide/、/mind/、/flowchart/、/form/、/smartsheet/)URL 时,直接从路径取 id,不要再次询问。
- 分页。 列表 / 搜索端点会在
data中返回 cursor /next标记;
把它传回即可获取下一页。标记为空时停止。
- 速率/配额。 免费应用每月 20,000 次 API 调用(超级会员 20,000 次/天,
Plus 40,000 次/天)。AI 生成功能额外消耗积分,且可能需要超级会员——400007 / 400008 表示账号等级/积分问题,而非请求本身的 bug。
- 完整 API 索引。 除上述配方外,Open API 还涵盖智能表格记录、
收集表、文件夹增删改查、权限以及导入导出——参见接口索引。