dsh_qzone_sticker:讓 DeepSeek Harness 在本機靜默登錄 QQ 空間併發說說

前言

在 DeepSeek Harness(DSH)裏做智能體時,常見需求是「把狀態同步到某個社交平臺」——但 QQ 空間沒有面向個人開發者的穩定 OAuth 發說說 API,多數做法要麼手動開瀏覽器複製粘貼,要麼寫腳本硬啃 cookie,登錄態一過期就要重來。kdcadmin 維護的 dsh_qzone_sticker(npm 包名 dsh-qzone,當前版本 0.4.1)是 DSH 生態裏的聯網工具類插件:在本機用 headless Chrome 完成首次掃碼登錄,之後模型可通過工具主動發說說、配圖,並受每日條數與間隔限制。社區目錄頁:skillhub.cn/plugins/kdcadmin/dsh_qzone_sticker;源碼與說明:github.com/kdcadmin/dsh_qzone_sticker(MIT,GitHub 星標數爲資料記載 1)。DSH 的理念是「一切皆插件」;SkillHub 等目錄爲社區站點,與 DeepSeek / 幻方無官方從屬關係。

這是什麼

一句話:給 DeepSeek Harness 用的 QQ 空間插件——本機靜默起一份專屬 Chrome(headless,不佔屏幕),第一次用手機 QQ 掃碼登錄;之後不必再開瀏覽器、不必手點發表,模型可在合適時機調用工具發說說,支持正文、最多 9 張圖、公開/好友/僅自己,並可配置每天條數、兩條最小間隔與表情包目錄。

維護者:kdcadmin。插件在設置中的入口與其它內容類插件類似:設置 → 發說說。

核心功能

以下均來自倉庫 README,安裝前可對照 GitHub 自行覈對。

登錄與會話

  • 設置頁點「生成登錄二維碼」,手機 QQ 掃碼;登錄態落在本機 ~/.dsh/qzone-session.json 與專屬 Chrome profile(~/.dsh/qzone-chrome),倉庫不含任何登錄信息。
  • 每 20 分鐘用靜默 Chrome 刷空間主頁續 p_skey;登錄態聯網校驗,過期會提示重新掃碼。
  • 支持一鍵退出:清會話並刪除專屬 Chrome profile。

發說說與配圖

  • 工具 qzone_publish:正文 + 最多 9 張圖,visibility 爲 public / friends / private;dryRun: true 僅檢查登錄不發表。
  • images 可傳表情包路徑,或按文案關鍵詞從「表情包目錄」自動挑一張;配圖只允許該目錄下的文件。
  • 帶圖先發相冊接口;常見「相冊不存在」等失敗時,自動改用靜默 Chrome 走網頁 UI(填字、傳圖、點發表)。
  • 文字可走 emotion_cgi_publish_v6 等接口路徑(見 README「怎麼做的」);不填內容時按早/午/晚/深夜自動生成一句並配圖。

讀取與防刷

  • qzone_recent:讀最近說說,默認 10 分鐘緩存(~/.dsh/qzone-recent-cache.json),設置裏點「刷新」才重讀;接口受限時可從空間主頁抓取。
  • qzone_status:查看當前登錄 QQ。
  • 每日上限可設 0(不限)或 1~999;兩條之間至少 60 秒。插件配置見倉庫內 cordis.patch.yml(uin / 上限 / 間隔等字段以文件爲準)。

環境與依賴

裝完建議按 README「裝完先做的 3 步」走:

  1. Node.js 22+ 與本機 Chrome(插件用 Chrome 持久 profile + --headless=new + CDP,不需要 Python、不需要額外下載瀏覽器)。
  2. 登錄:設置 → 發說說 → 掃碼;會話僅本機。
  3. 配圖目錄:默認從表情包目錄挑圖;可在設置裏改成自己的圖庫路徑。

package.json 要求:node >= 22,dsh >= 0.2.0-0。

安裝與啓用

資料中的安裝方式不是 dsh plugin add github:... 一鍵命令;當前以本地 link 進 profile 爲主,插件市場「即將上架」後可在 設置 → 插件 → 發現 搜索「QQ空間 / qzone」安裝。

下面介紹開發/本地接入方式(README 原文流程,<插件目錄> 指 clone 後的倉庫路徑):

  1. 本機安裝 Node.js 22+,準備好 Chrome。
  2. 在所用 profile 的 package.json 里加入依賴與 bundle,例如 desktop profile:
// profiles/desktop/package.json
{
  "dependencies": { "dsh-qzone": "link:<插件目錄>" },
  "dsh": { "profile": { "bundles": ["...", "dsh-qzone"] } }
}
  1. 在 profiles/desktop/node_modules 下建立目錄聯接(README 示例爲 Windows):
cmd /c mklink /J "profiles\desktop\node_modules\dsh-qzone" "<插件目錄>"

Linux/macOS 用戶需用本系統等價方式把 node_modules/dsh-qzone 指到 <插件目錄>,具體以實現 link 爲準。

  1. 重啓 DeepSeek Harness,設置裏應出現「發說說」。

典型用法

網頁: 設置 → 發說說 → 生成登錄二維碼 → 手機 QQ 掃 → 寫文案、選配圖與可見範圍 → 發表。

模型側工具:

工具 作用
qzone_status 看當前登錄 QQ
qzone_recent 讀最近說說(發之前去重用)
qzone_publish 發說說,可帶 images、visibility;dryRun: true 只驗登錄

README 中的自然語言示例(可交給 agent 理解後調工具):

幫我在空間發一條:「發現這個空間是我的天下了哈哈哈」,配一張大肥魚統治世界的表情包。

適用場景與注意

適合誰: 已在 DSH 上跑 agent、希望把「發 QQ 空間說說」做成工具能力、且能接受本機常駐 Chrome 與 QQ 掃碼登錄的開發者或個人用戶。

安全與權限(README 摘要):

  • 只會操作當前掃碼登錄的那個 QQ 空間。
  • 插件以當前 DSH 進程權限運行;安裝前應閱讀源碼與 MIT 許可證,確認 cookie 不落庫、路徑與上限策略符合你的預期。
  • 全程不讀取、不復述、不保存 cookie 到倉庫;配圖路徑受目錄限制。

實現要點(便於排查): 靜默 Chrome 專屬 profile、CDP 掃碼與帶圖兜底(Page.setInterceptFileChooserDialog 等)見 README「怎麼做的」與目錄結構(index.js、lib/qzone.js、lib/silent.js 等)。

結尾

dsh_qzone_sticker 把 QQ 空間的掃碼登錄、會話保活、接口發表與網頁 UI 兜底收進一個 DSH 插件,讓模型通過 qzone_publish 等工具在規則內主動更新空間,而不是每次讓人開瀏覽器。細節與更新以 GitHub README 爲準。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜