name: 騰訊文件Markdown license: MIT description: 騰訊文件 Markdown 技能,支援新建 Markdown 並寫入內容、下載、刪除、讀取、更新、重新命名等操作。
名稱:
tencent-docs-markdown許可證: MIT 簡介: 騰訊文件 Markdown 技能,支援新建 Markdown 並寫入內容、下載、刪除、讀取、更新、重新命名等操作。
當用戶表達以下意圖時,Agent 應啟用此技能:
| 意圖 | 示例短語 |
|---|---|
| 新建並寫入 | "新建一個Markdown到騰訊文件並寫入內容[xxx]" / "幫我新建騰訊文件md,寫入以下內容" / "上傳xxx.md到騰訊文件" / "上傳xxx.md文件" / "同步xxx.md文件" / "提交xxx.md文件" / "把本地檔案同步到騰訊文件" |
| 新建空文件 | "幫我建立名為xxx.md" / "新建一個Markdown文件" |
| 下載 | "把https://docs.qq.com/markdown/[xxx]文件儲存到本地" |
| 讀取 | "讀取https://docs.qq.com/markdown/[xxx]文件內容" |
| 更新 | "更新[xxx]到https://docs.qq.com/markdown/[xxx]" |
| 刪除 | "刪除https://docs.qq.com/markdown/[xxx]" |
| 重新命名 | "重新命名https://docs.qq.com/markdown/[xxx]文件為xxx" |
| 檢視資訊 | "獲取https://docs.qq.com/markdown/[xxx]文件的詳情" |
| 登入 | "登入騰訊文件" / "重新登入" / "Cookie過期了" |
flowchart TD
A[使用者請求] --> B{Cookies 有效?}
B -->|是| C[執行操作]
B -->|否| D[通過掃碼登入]
D --> E[儲存 Cookies]
E --> C
C --> F[返回結果 + 文件連結]
# 1. 安裝依賴
pip install -r requirements.txt
playwright install chromium
# 2. 登入(使用微信/QQ 掃描二維碼)
python -m src.main login
# 3. 新建文件並寫入內容
python -m src.main write "我的文件" "# Hello World"
新建一個騰訊文件 Markdown,寫入內容後返回文件連結。
命令列:
python -m src.main write "我的文件" "# Hello World\n這是我的文件內容。"
程式設計介面:
from src.main import handle_create_and_write
result = handle_create_and_write('我的文件', '# Hello World\n這是內容。')
# result: {'docUrl': ..., 'padId': ..., 'globalPadId': ..., 'title': ...}
# → 將 result['docUrl'] 分享給使用者
建立一個新的空 Markdown 文件。
命令列:
python -m src.main create "我的新文件"
程式設計介面:
from src.main import handle_create
result = handle_create('我的文件')
# result: {'docUrl': ..., 'padId': ..., 'globalPadId': ..., 'title': ...}
將騰訊文件 Markdown 下載為本地 .md 檔案。
注意: 系統會自動從文件頁面解析真實的
padId(URL 中的識別符號與 API 所需的真實 padId 不同)。來源於7w4.net。
命令列:
python -m src.main download https://docs.qq.com/markdown/DQxxxxxxxx
python -m src.main download https://docs.qq.com/markdown/DQxxxxxxxx -o ./output.md
程式設計介面:
from src.main import handle_download
result = handle_download('https://docs.qq.com/markdown/DQxxxxxxxx', './output.md')
# result: {'path': ..., 'content': ...}
讀取並返回文件內容。
命令列:
python -m src.main read https://docs.qq.com/markdown/DQxxxxxxxx
程式設計介面:
from src.main import handle_read
content = handle_read('https://docs.qq.com/markdown/DQxxxxxxxx')
覆蓋已有文件的內容(支援直接傳入文本或 .md 檔案路徑)。
⚠️ 安全提示: 這是破壞性操作。互動模式下會顯示目標文件標題與 URL 並要求確認 (
y/N)。程式化呼叫須顯式傳入confirm=True,否則操作會被拒絕。CLI 也可加-y/--yes跳過提示。
命令列:
python -m src.main update https://docs.qq.com/markdown/DQxxxxxxxx "# 新內容"
python -m src.main update https://docs.qq.com/markdown/DQxxxxxxxx ./updated.md
python -m src.main update https://docs.qq.com/markdown/DQxxxxxxxx ./updated.md -y # 跳過確認
程式設計介面:
from src.main import handle_update
handle_update('https://docs.qq.com/markdown/DQxxxxxxxx', '# 更新後的內容', confirm=True)
將文件移入回收站。
⚠️ 安全提示: 互動模式下會展示目標文件標題與 URL 並要求確認 (
y/N)。程式化呼叫須顯式傳入confirm=True,否則操作會被拒絕。CLI 也可加-y/--yes跳過提示。
命令列:
python -m src.main delete https://docs.qq.com/markdown/DQxxxxxxxx
python -m src.main delete https://docs.qq.com/markdown/DQxxxxxxxx -y # 跳過確認
程式設計介面:
from src.main import handle_delete
result = handle_delete('https://docs.qq.com/markdown/DQxxxxxxxx', confirm=True)
# result: {'padId': ..., 'title': ..., 'deleted': True}
⚠️ 安全提示: 互動模式下會展示原標題、新標題與 URL 並要求確認 (
y/N)。程式化呼叫須顯式傳入confirm=True。
命令列:
python -m src.main rename https://docs.qq.com/markdown/DQxxxxxxxx "新標題"
python -m src.main rename https://docs.qq.com/markdown/DQxxxxxxxx "新標題" -y # 跳過確認
程式設計介面:
from src.main import handle_rename
handle_rename('https://docs.qq.com/markdown/DQxxxxxxxx', '新標題', confirm=True)
命令列:
python -m src.main info https://docs.qq.com/markdown/DQxxxxxxxx
程式設計介面:
from src.main import handle_info
info = handle_info('https://docs.qq.com/markdown/DQxxxxxxxx')
命令列:
python -m src.main login # 使用快取的 Cookies(如有效)
python -m src.main login --force # 強制重新登入
刪除本地 .cookies.json 憑證檔案,在不再需要該會話時使用。
命令列:
python -m src.main logout
程式設計介面:
from src.auth import clear_cookies
clear_cookies()
首次使用需掃碼登入,之後 Cookie 會快取在 .cookies.json 中自動複用。
🔐 憑證管理:
.cookies.json被明確宣告為 賬戶級憑證。儲存時會自動應用 POSIX0600許可權(僅當前使用者可讀寫),並在終端提示使用者其敏感性。切勿將此檔案提交到版本控制或共享給他人;不再使用時請執行python -m src.main logout或手動刪除。推薦使用專用的自動化賬號,而非個人主賬號。
支援兩種登入方式: 1. 掃碼登入 — 使用微信/QQ 掃描二維碼 2. 微信快捷登入 — 如果之前在當前瀏覽器已有微信登入記錄,系統會自動檢測並點選"微信快捷登入"按鈕,頁面顯示"登入中..."後自動完成登入
flowchart TD
A[開始] --> B{.cookies.json 存在?}
B -->|是| C{Cookies 有效?}
B -->|否| D[啟動瀏覽器]
C -->|是| E[就緒]
C -->|否| D
D --> F{微信快捷登入可用?}
F -->|是| G[點選'微信快捷登入'按鈕]
G --> H[頁面顯示'登入中...']
H --> I[每10秒輪詢檢測頁面變化]
F -->|否| J[展示二維碼供掃描]
J --> I
I --> K{檢測到登入成功?}
K -->|是| L[獲取並驗證 Cookies]
K -->|否 / 超時| I
L --> M[儲存 Cookies 到 .cookies.json]
M --> E
| 介面 | 方法 | 路徑 | 關鍵引數 |
|---|---|---|---|
| 建立文件 | GET | /cgi-bin/online_docs/createdoc_new |
doc_type=14, create_type=1, folder_id=/, title, xsrf |
| 刪除文件 | POST | /cgi-bin/online_docs/doc_delete |
pad_id, domain_id, xsrf |
| 讀取內容 | POST | /api/markdown/read/data |
file_id(globalPadId) |
| 寫入內容 | POST | /api/markdown/write/data |
file_id, mark_down |
| 文件資訊 | POST | /cgi-bin/online_docs/doc_info |
file_id |
| 重新命名 | POST | /cgi-bin/online_docs/doc_changetitle |
pad_id, title, xsrf |
| 解析真實 padId | GET | 文件頁面 HTML | 從 basicClientVars 中提取 padId |
tencent-docs-markdown/
├── requirements.txt # Python 依賴
├── SKILL.md # 技能定義檔案(本檔案)
├── publish.sh # 版本釋出指令碼
├── .cookies.json # 儲存的登入 Cookies(自動生成,已加入 .gitignore)
└── src/
├── __init__.py # Python 包初始化
├── main.py # 主入口 & CLI 命令
├── auth.py # 掃碼登入 & Cookie 管理
├── api.py # 騰訊文件 Markdown API 客戶端
└── login_with_polling.py # 輪詢登入指令碼
騰訊文件 Markdown 的 URL 格式為 https://docs.qq.com/markdown/DSxxxxxxxx,其中 DSxxxxxxxx 是 URL 識別符號,並非 API 所需的真實 padId。
系統通過 resolve_real_pad_id() 函式訪問文件頁面,從嵌入的 basicClientVars JSON 中提取真實的 padId,然後拼接為 globalPadId(格式:{domainId}${padId})用於 API 呼叫。
此機制對 下載(download)、讀取(read)、更新(update) 操作自動生效,使用者無需關注。
| 錯誤 | 原因 | 解決方案 |
|---|---|---|
| Cookie 過期 | 會話超時 | 自動通過掃碼重新登入 |
retcode !== 0 |
API 返回錯誤 | 顯示詳細錯誤資訊 |
| 無效 URL | 騰訊文件 URL 格式不正確 | 確保格式為:https://docs.qq.com/markdown/xxxxx |
| 資源不存在 | URL 識別符號無法解析為真實 padId | 檢查文件是否存在或是否有訪問許可權 |
14(doc_type=14)domain_id 為 300000000TOK Cookie 中提取.cookies.json 中(已加入 .gitignore),儲存時自動設定 0600 許可權.cookies.json 包含敏感的會話 Cookie,其作用等同於賬戶憑證。請勿提交到版本控制或分享給他人;檔案自動設定 0600 許可權,如需手動重置:chmod 600 .cookies.json。不再使用時請執行 python -m src.main logout 清除。update / delete / rename 均為不可撤銷或影響使用者文件的操作;它們在執行前會解析並展示目標文件的標題與 URL,互動模式下要求 y/N 確認;程式化呼叫必須顯式傳入 confirm=True,否則操作會被拒絕。download / read 會將文件內容暴露給當前 agent 會話、終端輸出或本地檔案;請避免對高敏感文件使用這些操作。requirements.txt 中所有執行時依賴都被鎖定到確定版本以減少供應鏈風險;請在可信任的環境中安裝並審查任何依賴更新。| 配置項 | 路徑 | 說明 |
|---|---|---|
| Cookie 儲存(憑證) | .cookies.json(專案根目錄,自動生成) |
儲存騰訊文件會話 Cookie 的賬戶級憑證檔案。首次登入後自動建立,儲存時自動應用 0600 許可權。此檔案包含敏感資訊,請勿洩露;不再使用時請執行 python -m src.main logout 或手動刪除。 |
這是一款功能齊全、操作騰訊文件 Markdown 的工具,核心功能都工作穩定。它在安全性上做得比較用心——刪除或修改文件時會主動要求確認,防止誤操作。不過沒有自動化測試,長期維護可能存在隱患。對於普通使用者來說上手簡單,按照文件操作即可。整體質量中上,功能實用但還有完善空間。