首页 / 全部技能 / 内容创作 / canghe-post-to-wechat
内容创作 · freestylefly/canghe-skills

canghe-post-to-wechat

Posts content to WeChat Official Account (微信公众号) via API or Chrome CDP. Supports article posting (文章) with HTML, markdown, or plain text input, and image-text posting (贴图, formerly 图文) with multiple images. Use when user mentions "发布公众号", "post to wechat", "微信公众号", or "贴图/图文/文章".

风险提醒:红色 · 谨慎使用AI 侦查报告
作者 freestyleflyGitHub freestylefly/canghe-skills ↗许可 MIT(仓库根 LICENSE)commit dd0bf35595
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

双通道发布:要么走微信公众平台 API(wechat-api.ts,草稿接口),要么走浏览器 CDP(wechat-article.ts / wechat-browser.ts 驱动真实 Chrome)。

skills/canghe-post-to-wechat/SKILL.md
Posts content to WeChat Official Account (微信公众号) via API or Chrome CDP.
注:这里在做什么:SKILL.md 首句即声明两条发布路线;后续 Step 5 让用户选 api(快)或 browser(慢)。

流程是清单式的 Step 0-7,且首次设置被定义为阻断操作:EXTEND.md 未就绪前禁止任何其它步骤或提问。

skills/canghe-post-to-wechat/references/config/first-time-setup.md
**BLOCKING OPERATION**: This setup MUST complete before ANY other workflow steps.
注:这里在做什么:把偏好收集做成硬门禁,防止 agent 在未配置时贸然进入内容/发布环节。

API 路径的凭证来自 .env:WECHAT_APP_ID / WECHAT_APP_SECRET,三级优先级为环境变量 → 项目 .canghe-skills/.env → 用户 ~/.canghe-skills/.env。

skills/canghe-post-to-wechat/SKILL.md
test -f .canghe-skills/.env && grep -q "WECHAT_APP_ID" .canghe-skills/.env && echo "project"
注:这里在做什么:Step 5 用 Bash 探测两级 .env 是否存在凭证,缺失则引导用户到公众平台取得 AppID/AppSecret 并写入。

草稿请求体规则被写死:POST draft/add,article_type 取 news/newspic,news 必带 thumb_media_id,并显式携带评论开关字段。

skills/canghe-post-to-wechat/SKILL.md
- Use endpoint: `POST https://api.weixin.qq.com/cgi-bin/draft/add?access_token=ACCESS_TOKEN`
注:这里在做什么:Step 6 规定 API 报文细节(端点、类型、封面必需、need_open_comment/only_fans_can_comment 解析优先级)。

浏览器路径用真实 Chrome + CDP,并以 --disable-blink-features=AutomationControlled 关闭自动化特征。

skills/canghe-post-to-wechat/scripts/cdp.ts
'--disable-blink-features=AutomationControlled',
注:这里在做什么:启动参数里主动抹掉自动化标志,属反自动化侦测的技术性绕过(wechat-browser.ts:345 同样存在)。

贴图/图文把图片贴进编辑器:markdown 图片先替换为 WECHATIMGPH_n 占位符,粘贴 HTML 后逐个定位占位符删除并贴入图片。

skills/canghe-post-to-wechat/references/article-posting.md
3. **Paste**: HTML content is pasted into WeChat editor
注:这里在做什么:Image Handling 四步(Parse→Render→Paste→Replace)是浏览器发文的贴图核心机制。

剪贴板写入依赖内联 Swift/AppKit:脚本把一段 Swift 源码写临时文件再编译执行,以支持图片/富文本剪贴板。

skills/canghe-post-to-wechat/scripts/copy-to-clipboard.ts
await writeFile(swiftPath, getMacSwiftClipboardSource(), 'utf8');
注:这里在做什么:跨平台剪贴板适配的一环(macOS 侧);Linux/Windows 另有对应实现。

markdown→HTML 转换委派给 canghe-markdown-to-html,命令与主题选项同源。

skills/canghe-post-to-wechat/SKILL.md
npx -y bun ${MD_TO_HTML_SKILL_DIR}/scripts/main.ts <markdown_file> --theme <theme>
注:这里在做什么:Step 2/3 先发现 canghe-markdown-to-html,再以其 main.ts 转换并解析 JSON(htmlPath/title/summary/contentImages)。

预检脚本检查 Chrome、profile 隔离、Bun、辅助功能、剪贴板、粘贴键、API 凭证与 Chrome 冲突。

skills/canghe-post-to-wechat/SKILL.md
Checks: Chrome, profile isolation, Bun, Accessibility, clipboard, paste keystroke, API credentials, Chrome conflicts.
注:这里在做什么:check-permissions.ts 是可选的前置体检,失败时 SKILL.md 给出逐项修复指引。

2核心能力

01API 发文(草稿):wechat-api.ts 调微信草稿接口
02浏览器发文(文章):wechat-article.ts 驱动真实 Chrome
03贴图/图文多图发布(最多 9 张,标题/内容超限自动压缩)
04图片占位符 → 真实键击贴图流程(WECHATIMGPH_n 定位替换)
05元数据校验与自动生成(标题/摘要/封面,封面回退 imgs/cover.png)
06评论开关控制(need_open_comment / only_fans_can_comment)
07偏好外置 EXTEND.md(默认主题/发布方式/作者/评论开关/Chrome profile)与首次引导设置
08环境预检(Chrome/权限/剪贴板/键击/凭证/冲突)

3外部依赖

类型依赖
api微信公众平台草稿接口(draft/add)
network微信公众平台(凭证申请/草稿管理页)
clibun(经 npx -y 即时拉取)
cliGoogle Chrome(CDP)+ osascript / xdotool / ydotool(真实键击贴图)

4风险提醒 风险提醒:红色 · 谨慎使用

风险提醒:红色 · 谨慎使用
  • 以用户真实 Chrome 登录态操作公众号,并在启动参数中关闭自动化特征(--disable-blink-features=AutomationControlled)。 — 属反自动化侦测的技术性绕过;会影响账号与平台条款风险。
  • API 路径读取 AppID/AppSecret 并以此账号创建草稿/发布,发布不可逆。 — 凭证存于 .env(项目或用户级),能读该文件者即可代发。
  • 浏览器路径依赖共享 Chrome profile 与系统辅助功能/剪贴板权限,贴图走真实键击。 — 需要授予终端 Accessibility 权限,等于放大宿主进程的操作面。
  • 主脚本(wechat-api/article/browser.ts)正文未在 bundle 展开,取 token 与 DOM 细节未经代码级复核。 — 第二遍已标 unlocatable。
风险提醒:红色,谨慎使用(能力/策略级判定,非恶意植入)。两条红轴:① 反自动化侦测的技术性绕过——浏览器路径启动真实 Chrome 并带 --disable-blink-features=AutomationControlled(cdp.ts:220、wechat-browser.ts:345),贴图以 osascript 真实 Cmd+V 键击为首要手段;命中范式红档『反反爬/绕过』(先例 baoyu-post-to-wechat、baoyu-post-to-x、notebooklm-skill)。② 凭证面与外部副作用——API 路径经 .env 读 WECHAT_APP_ID/WECHAT_APP_SECRET 并以此账号调用微信草稿接口(draft/add),浏览器路径复用共享 Chrome 登录态;发布以用户账号产生不可逆副作用。跨 skill 调用 canghe-markdown-to-html 不作传递式抬档,仅写入 reason/risks。

5第二遍独立确认

  • [ok] 双通道实现原理 — SKILL.md 描述、脚本清单与 Step 5/6 命令三处互证 api 与 browser 两条路径。
  • [ok] 反自动化绕过 — 风险扫描在 cdp.ts:220 与 wechat-browser.ts:345 各定位一条 --disable-blink-features=AutomationControlled,判红据成立。
  • [ok] 凭证读取 — SKILL.md 的 .env 探测命令、凭证引导流程与 Config File Locations 三级优先级一致。
  • [ok] 微信 API 端点与报文规则 — draft/add 端点在 SKILL.md Step 6 与 Feature Comparison 中一致出现,含 thumb_media_id 与评论字段规则。
  • [ok] 贴图占位符机制 — article-posting.md 的 Parse/Render/Paste/Replace 四步与 image-text-posting.md 说明自洽。
  • [unlocatable] 主脚本正文细节 — wechat-api.ts / wechat-article.ts / wechat-browser.ts 全文未在 bundle 展开,取 token、DOM 操作等细节以 SKILL.md 与扫描行为据,未代码级复核。
  • [ok] 跨 skill 依赖 canghe-markdown-to-html — SKILL.md Step 2/3 明写发现与调用,属他人 skill 行为,不参与本 skill 判级。
  • [ok] 插件/镜像等供应链线索 — 除 npx -y bun 即时拉取与自带 md 子集外,未在 bundle 内发现第三方镜像或远程包注入。

6结论

  • 双通道覆盖发布全场景:API 快且结构化,浏览器路径可覆盖 API 不支持的贴图/富交互编辑器。
  • 工程化程度高:清单式流程、BLOCKING 首设、环境预检、逐项修复指引,降低使用门槛。
  • 微信生态细节完备:封面必需、评论开关、标题/内容压缩、图片占位符贴图流程。
  • 适合:需要把 Markdown/HTML/纯文本文章或贴图发布到微信公众号的内容运营者,尤其需要评论开关与贴图流程的自动化场景。
    不适合:不允许第三方自动化操作公众号账号的人;不愿读取/存放 AppID·AppSecret 或复用浏览器登录态的环境。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-10-10
    方式 A · 人下载镜像包下载 canghe-post-to-wechat.tar.gz
    sha256: 1efd21eef0ed6ee4…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit dd0bf35595;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库freestylefly / freestylefly/canghe-skills
    本 skill commitdd0bf35595
    许可MIT(仓库根 LICENSE)
    本站信息
    收录日期2026-09-06
    分类内容创作
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    被文章提及
    同分类邻近