ホーム / 全スキル / コンテンツ制作 / canghe-post-to-wechat
コンテンツ制作 · freestylefly/canghe-skills

canghe-post-to-wechat

APIまたはChrome CDPを介してWeChat公式アカウント(微信公众号)にコンテンツを投稿します。HTML、Markdown、またはプレーンテキスト入力による記事投稿(文章)と、複数画像を含む画像・テキスト投稿(贴图、旧称:图文)をサポートします。「发布公众号」、「post to wechat」、「微信公众号」、または「贴图/图文/文章」と言及された際に使用します。

L5 厳格管理 · 隔離環境と厳格な監査V2 人間監査済規約/コンプライアンス認証情報/セッションコマンド実行ネットワーク通信ファイル書き込みDual-pass Audit
Author freestyleflyGitHub freestylefly/canghe-skills ↗License MIT(仓库根 LICENSE)Commit dd0bf35595
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

デュアルチャネル投稿:WeChat公式アカウントプラットフォームの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の冒頭で2つの投稿ルートを宣言し、その後の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.
処理内容:設定の収集を厳格なゲートとすることで、エージェントが未設定のまま不用意にコンテンツ作成や投稿プロセスに進むのを防ぎます。

APIルートの認証情報は.env(WECHAT_APP_ID / WECHAT_APP_SECRET)から取得され、優先度は環境変数 → プロジェクトの.canghe-skills/.env → ユーザーの~/.canghe-skills/.envの3段階です。

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を用いて2階層の.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を貼り付けた後、プレースホルダーを1つずつ特定して削除し、画像を貼り付けます。

skills/canghe-post-to-wechat/references/article-posting.md
3. **Paste**: HTML content is pasted into WeChat editor
処理内容:画像処理の4ステップ(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、プロファイル分離、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によるWeChat下書きインターフェースの呼び出し
02ブラウザ投稿(記事):wechat-article.tsによる実Chromeの操作
03複数画像付き画像・テキスト投稿(最大9枚、タイトル/本文の文字数超過時の自動圧縮)
04画像プレースホルダー → 実際のキーストロークによる貼り付けフロー(WECHATIMGPH_nの特定と置換)
05メタデータの検証と自動生成(タイトル/要約/カバー、カバーのフォールバックimgs/cover.png)
06コメント切り替え制御(need_open_comment / only_fans_can_comment)
07EXTEND.mdによる設定の外部化(デフォルトテーマ/投稿方式/著者/コメント切り替え/Chromeプロファイル)と初回ガイド設定
08環境の事前検証(Chrome/権限/クリップボード/キーストローク/認証情報/競合)

3外部依存関係

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

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
隔離環境で実行、都度明示的な認可
管理者向け
厳格な認可、全量監査、コンプライアンス確認
判定根拠(ファイルパスと抜粋)
  • SKILL.md / 脚本参数: 自動化検知の回避、ホストサンドボックスの無効化、またはSSL証明書検証のスキップを含む
  • SKILL.md / 会话存储: ブラウザのユーザーログイン状態およびセッションCookieの読み取りまたは再利用
  • 本地凭据 / 浏览器配置: ユーザーログインCookie/セッション/キーチェーンの読み取り: ブラウザルートが共有Chromeプロファイルの公式アカウントログイン状態を再利用(セッションCookieがプロファイル内に存在)
  • scripts/: ローカルスクリプトまたはコマンドの実行: npx -y bun ${SKILL_DIR}/scripts/wechat-api.ts / wechat-article.ts / wechat-
  • 网络端点: 外部ネットワークアクセスの宣言: WeChat下書きインターフェース POST https://api.weixin.qq.com/cgi-bin/draft/add?access_token=ACCESS
  • 本地工作目录: ファイル読み書きおよび成果物の出力: プレーンテキスト入力時にpost-to-wechat/yyyy-MM-dd/[slug].mdを作成(mkdir -p + ファイル書き込み)
監査ノート: (機能およびポリシーレベルでの判定であり、悪意ある埋め込みではありません)。2つのレッドライン:① 自動化検知の技術的バイパス——ブラウザルートは--disable-blink-features=AutomationControlledを付与して実Chromeを起動し(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を読み取り、そのアカウントでWeChat下書きインターフェース(draft/add)を呼び出し、ブラウザルートは共有Chromeのログイン状態を再利用します。投稿はユーザーアカウントにおいて不可逆な副作用をもたらします。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による初回設定、環境事前検証、項目ごとの修復ガイドにより利用ハードルを低減。
  • WeChatエコシステムへの細やかな配慮:カバー必須、コメント切り替え、タイトル/本文の圧縮、画像プレースホルダーによる貼り付けフローを完備。
  • 最適な用途: Markdown/HTML/プレーンテキストの記事や画像・テキストをWeChat公式アカウントに投稿する必要があるコンテンツ運用者、特にコメント切り替えや画像貼り付け自動化フローを必要とするシナリオに最適です。
    不向きな用途: 第三者による公式アカウントの自動操作を許可しないユーザー、またはAppID・AppSecretの読み取り/保存やブラウザログイン状態の再利用を望まない環境。
    Install Agent-Ready
    ① Verified Mirror 2026-10-10
    Option A · Direct DownloadDownload canghe-post-to-wechat.tar.gz
    sha256: 1efd21eef0ed6ee4…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit dd0bf35595.