canghe-post-to-wechat について
canghe-post-to-wechatは、WeChat Official Accountに画像付き投稿や記事を公開するコンテンツ制作者向けスキルです。APIまたはブラウザーでの公開に対応し、設定やメタデータの処理手順も扱います。
主な機能
- 01複数画像付きの投稿を公開
- 02APIまたはブラウザーで記事を公開
- 03Markdown、HTML、プレーンテキストを処理
- 04テーマ、著者、コメント設定を指定
- 05環境と公開権限を確認
活用シーン
- 01複数画像付きの短い投稿を公開
- 02Markdown記事を変換して公開
- 03APIとブラウザーの公開方法を選択
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ freestylefly/ canghe-skills --skill canghe-post-to-wechatインストール後、Claude Code で/canghe-post-to-wechatを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/article-posting.mdimage-text-posting.mdreferences/config/first-time-setup.mdscripts/cdp.tscheck-permissions.tscopy-to-clipboard.tsmd-to-wechat.tspaste-from-clipboard.tswechat-agent-browser.tswechat-api.tswechat-article.tswechat-browser.tsscripts/md/LICENSErender.tsscripts/md/extensions/alert.tsfootnotes.tsindex.tsinfographic.tskatex.tsmarkup.tsplantuml.tsruby.tsslider.tstoc.tsscripts/md/themes/base.cssdefault.cssgrace.csssimple.cssscripts/md/utils/languages.ts詳細
WeChat公式アカウントへの投稿
言語
ユーザーの言語に合わせる:ユーザーが使う言語と同じ言語で応答してください。ユーザーが中国語で書いた場合は中国語で、英語で書いた場合は英語で応答してください。
スクリプトディレクトリ
エージェントの実行:この SKILL.md のディレクトリを SKILL_DIR として特定し、${SKILL_DIR}/scripts/<name>.ts を使用してください。
| スクリプト | 用途 |
|---|---|
scripts/wechat-browser.ts | 画像付き投稿(图文) |
scripts/wechat-article.ts | ブラウザー経由の記事投稿(文章) |
scripts/wechat-api.ts | API経由の記事投稿(文章) |
scripts/check-permissions.ts | 環境と権限の確認 |
設定(EXTEND.md)
Bash を使って、優先順位に従い EXTEND.md が存在するか確認してください。
# Check project-level first
test -f .canghe-skills/canghe-post-to-wechat/EXTEND.md && echo "project"
# Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
test -f "$HOME/.canghe-skills/canghe-post-to-wechat/EXTEND.md" && echo "user"
┌────────────────────────────────────────────────────────┬───────────────────┐ │ パス │ 場所 │ ├────────────────────────────────────────────────────────┼───────────────────┤ │ .canghe-skills/canghe-post-to-wechat/EXTEND.md │ プロジェクトディレクトリ │ ├────────────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.canghe-skills/canghe-post-to-wechat/EXTEND.md │ ユーザーホーム │ └────────────────────────────────────────────────────────┴───────────────────┘
┌───────────┬───────────────────────────────────────────────────────────────────────────┐ │ 結果 │ 対応 │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ 見つかった場合 │ 読み込み、解析し、設定を適用 │ ├───────────────────────────────────────────────────────────────────────────┤ │ 見つからない場合 │ 初回セットアップを実行(references/config/first-time-setup.md)→ 保存 → 続行 │ └───────────┴───────────────────────────────────────────────────────────────────────────┘
EXTEND.md で設定できる項目:デフォルトのテーマ | デフォルトの公開方法(api/browser) | デフォルトの著者 | デフォルトのコメント許可スイッチ | デフォルトのフォロワー限定コメントスイッチ | Chrome プロファイルのパス
初回セットアップ:references/config/first-time-setup.md
最低限サポートされるキー(大文字と小文字を区別せず、1/0 または true/false を受け付けます):
| キー | デフォルト | マッピング |
|---|---|---|
default_author | 空 | CLI/frontmatter に指定がない場合の author のフォールバック |
need_open_comment | 1 | draft/add リクエストの articles[].need_open_comment |
only_fans_can_comment | 0 | draft/add リクエストの articles[].only_fans_can_comment |
EXTEND.md の推奨例:
default_theme: default
default_publish_method: api
default_author: 苍何
need_open_comment: 1
only_fans_can_comment: 0
chrome_profile_path: /path/to/chrome/profile
値の優先順位:
- CLI 引数
- Frontmatter
- EXTEND.md
- スキルのデフォルト
事前チェック(任意)
初回使用前に、環境チェックの実行を提案してください。ユーザーは希望すればスキップできます。
npx -y bun ${SKILL_DIR}/scripts/check-permissions.ts
チェック項目:Chrome、プロファイルの分離、Bun、アクセシビリティ、クリップボード、貼り付けのキーストローク、API 認証情報、Chrome の競合。
いずれかのチェックに失敗した場合は、項目ごとに修正方法を案内してください:
| チェック | 修正方法 |
|---|---|
| Chrome | Chrome をインストールするか、WECHAT_BROWSER_CHROME_PATH 環境変数を設定してください |
| プロファイルディレクトリ | ~/.local/share/wechat-browser-profile に書き込み権限があることを確認してください |
| Bun ランタイム | curl -fsSL https://bun.sh/install | bash |
| アクセシビリティ(macOS) | システム設定 → プライバシーとセキュリティ → アクセシビリティ → ターミナルアプリを有効にする |
| クリップボードのコピー | Swift/AppKit が利用可能であることを確認してください(macOS Xcode CLI ツール:xcode-select --install) |
| 貼り付けのキーストローク(macOS) | 上記のアクセシビリティの修正方法と同じです |
| 貼り付けのキーストローク(Linux) | xdotool(X11)または ydotool(Wayland)をインストールしてください |
| API 認証情報 | ステップ5のガイド付きセットアップに従うか、.canghe-skills/.env に手動で設定してください |
画像付き投稿(图文)
複数の画像を含む短い投稿(最大9枚)の場合:
npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --markdown article.md --images ./images/
npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --title "标题" --content "内容" --image img.png --submit
詳細はreferences/image-text-posting.mdをご覧ください。
記事投稿ワークフロー(文章)
このチェックリストをコピーし、完了した項目にチェックを付けてください。
Publishing Progress:
- [ ] Step 0: Load preferences (EXTEND.md)
- [ ] Step 1: Determine input type
- [ ] Step 2: Check markdown-to-html skill
- [ ] Step 3: Convert to HTML
- [ ] Step 4: Validate metadata (title, summary, cover)
- [ ] Step 5: Select method and configure credentials
- [ ] Step 6: Publish to WeChat
- [ ] Step 7: Report completion
ステップ 0:設定を読み込む
EXTEND.md の設定を確認して読み込みます(上記の「設定」セクションを参照)。
重要:見つからない場合は、ほかの手順や質問に進む前に、初回セットアップを完了してください。
後続の手順で使用する以下のデフォルト値を解決して保存します。
default_authorneed_open_comment(デフォルト1)only_fans_can_comment(デフォルト0)
ステップ 1:入力の種類を判定する
| 入力の種類 | 判定方法 | アクション |
|---|---|---|
| HTML ファイル | パスが .html で終わり、ファイルが存在する | ステップ 4 に進む |
| Markdown ファイル | パスが .md で終わり、ファイルが存在する | ステップ 2 に進む |
| プレーンテキスト | ファイルパスではない、またはファイルが存在しない | Markdown に保存し、ステップ 2 に進む |
プレーンテキストの処理:
- 内容からスラッグを生成します(意味のある最初の 2~4 語をハイフン区切りの小文字で表記)
- ディレクトリを作成してファイルを保存します。
mkdir -p "$(pwd)/post-to-wechat/$(date +%Y-%m-%d)"
# Save content to: post-to-wechat/yyyy-MM-dd/[slug].md
- Markdown ファイルとして処理を続けます。
スラッグの例:
- 「Understanding AI Models」→
understanding-ai-models - 「人工智能的未来」→
ai-future(スラッグは英語に翻訳)
ステップ 2:Markdown から HTML への変換スキルを確認する
次の場合はスキップ:入力が .html ファイル
スキルの検出:
# Check if canghe-markdown-to-html exists
test -f skills/canghe-markdown-to-html/SKILL.md && echo "found"
| 結果 | アクション |
|---|---|
| 見つかった | SKILL.md を読み込み、ステップ 3 に進む |
| 複数のスキルが見つかった | AskUserQuestion で選択する |
| 見つからない | インストール方法を提示する |
見つからない場合:
No markdown-to-html skill found.
Suggested installation:
https://github.com/JimLiu/canghe-skills/blob/main/skills/canghe-markdown-to-html/SKILL.md
Options:
A) Cancel - install the skill first
B) Continue - provide HTML file manually
ステップ 3:Markdown を HTML に変換する
次の場合はスキップ:入力が .html ファイル
- テーマの設定を確認します(EXTEND.md または CLI で指定されていない場合)。
| テーマ | 説明 |
|---|---|
default | クラシックテーマ — 伝統的なレイアウト、中央揃えで下線付きの見出し、白文字で色付き背景の 2 番目の見出し |
grace | エレガントなテーマ — 文字の影、角丸カード、洗練された引用ブロック |
simple | シンプルなテーマ — モダンでミニマルなスタイル、非対称の角丸、すっきりとした余白 |
- 変換を実行します(検出したスキルを使用)。
npx -y bun ${MD_TO_HTML_SKILL_DIR}/scripts/main.ts <markdown_file> --theme <theme>
- JSON 出力を解析して、
htmlPath、title、author、summary、contentImagesを取得します。
ステップ 4:メタデータを検証する
ステップ 3 で抽出したメタデータ(HTML を直接入力した場合は HTML の meta タグ)を確認します。
| フィールド | 値がない場合 |
|---|---|
| タイトル | 「タイトルを入力してください。Enter キーを押すと、内容から自動生成します」と確認する |
| 要約 | 「要約を入力してください。Enter キーを押すと自動生成します(SEO に推奨)」と確認する |
| 著者 | 次の優先順位でフォールバックします:CLI --author → frontmatter author → EXTEND.md default_author |
自動生成のロジック:
- タイトル:最初の H1/H2 見出し、または最初の文
- 要約:最初の段落を 120 文字に切り詰める
カバー画像の確認(article_type=news の場合は必須):
- CLI
--coverが指定されていれば使用します。 - それ以外の場合は frontmatter(
coverImage、featureImage、cover、image)を使用します。 - それ以外の場合は記事ディレクトリのデフォルトパス
imgs/cover.pngを確認します。 - それ以外の場合は、本文内で最初に使われている画像を使用します。
- それでも見つからない場合は、公開を停止してカバー画像を求めます。
ステップ 5:公開方法を選択して設定する
公開方法を確認します(EXTEND.md または CLI で指定されていない場合)。
| 方法 | 速度 | 必要なもの |
|---|---|---|
api(推奨) | 高速 | API 認証情報 |
browser | 低速 | Chrome、ログインセッション |
API を選択した場合 — 認証情報を確認する:
# Check project-level
test -f .canghe-skills/.env && grep -q "WECHAT_APP_ID" .canghe-skills/.env && echo "project"
# Check user-level
test -f "$HOME/.canghe-skills/.env" && grep -q "WECHAT_APP_ID" "$HOME/.canghe-skills/.env" && echo "user"
認証情報がない場合 — 設定方法を案内する:
WeChat API credentials not found.
To obtain credentials:
1. Visit https://mp.weixin.qq.com
2. Go to: 开发 → 基本配置
3. Copy AppID and AppSecret
Where to save?
A) Project-level: .canghe-skills/.env (this project only)
B) User-level: ~/.canghe-skills/.env (all projects)
保存先を選択した後、値を入力するよう求め、.env に書き込みます。
WECHAT_APP_ID=<user_input>
WECHAT_APP_SECRET=<user_input>
ステップ 6:WeChat に公開する
API 方式:
npx -y bun ${SKILL_DIR}/scripts/wechat-api.ts <html_file> [--title <title>] [--summary <summary>] [--author <author>] [--cover <cover_path>]
draft/add のペイロード規則:
- エンドポイント
POST https://api.weixin.qq.com/cgi-bin/draft/add?access_token=ACCESS_TOKENを使用します。 article_type:news(デフォルト)またはnewspicnewsの場合はthumb_media_idを含めます(カバー画像が必須です)。- 常に以下の値を解決して送信します。
need_open_comment(デフォルト1)only_fans_can_comment(デフォルト0)
authorの解決順序:CLI--author→ frontmatterauthor→ EXTEND.mddefault_author
スクリプトのパラメーターで 2 つのコメントフィールドを指定できない場合でも、最終的な API リクエスト本文に解決済みの値が含まれるようにしてください。
ブラウザー方式:
npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --html <html_file>
ステップ 7:完了レポート
API 方式の場合は、下書き管理リンクを含めます:
WeChat Publishing Complete!
Input: [type] - [path]
Method: API
Theme: [theme name]
Article:
• Title: [title]
• Summary: [summary]
• Images: [N] inline images
• Comments: [open/closed], [fans-only/all users]
Result:
✓ Draft saved to WeChat Official Account
• media_id: [media_id]
Next Steps:
→ Manage drafts: https://mp.weixin.qq.com (登录后进入「内容管理」→「草稿箱」)
Files created:
[• post-to-wechat/yyyy-MM-dd/slug.md (if plain text)]
[• slug.html (converted)]
ブラウザー方式の場合:
WeChat Publishing Complete!
Input: [type] - [path]
Method: Browser
Theme: [theme name]
Article:
• Title: [title]
• Summary: [summary]
• Images: [N] inline images
Result:
✓ Draft saved to WeChat Official Account
Files created:
[• post-to-wechat/yyyy-MM-dd/slug.md (if plain text)]
[• slug.html (converted)]
詳細リファレンス
| トピック | リファレンス |
|---|---|
| 画像・テキストのパラメーター、自動圧縮 | references/image-text-posting.md |
| 記事のテーマ、画像の処理 | references/article-posting.md |
機能比較
| 機能 | 画像・テキスト | 記事(API) | 記事(ブラウザー) |
|---|---|---|---|
| プレーンテキスト入力 | ✗ | ✓ | ✓ |
| HTML 入力 | ✗ | ✓ | ✓ |
| Markdown 入力 | タイトル/本文 | ✓(スキル経由) | ✓(スキル経由) |
| 複数の画像 | ✓(最大 9 枚) | ✓(インライン) | ✓(インライン) |
| テーマ | ✗ | ✓ | ✓ |
| メタデータの自動生成 | ✗ | ✓ | ✓ |
デフォルトのカバー画像フォールバック(imgs/cover.png) | ✗ | ✓ | ✗ |
コメント制御(need_open_comment、only_fans_can_comment) | ✗ | ✓ | ✗ |
| Chrome が必要 | ✓ | ✗ | ✓ |
| API 認証情報が必要 | ✗ | ✓ | ✗ |
| 速度 | 中速 | 高速 | 低速 |
前提条件
API 方式の場合:
- WeChat 公式アカウントの API 認証情報
- ステップ 5 のガイド付きセットアップ、または
.canghe-skills/.envへの手動設定
ブラウザー方式の場合:
- Google Chrome
- 初回実行時:WeChat 公式アカウントにログインします(セッションは保持されます)
Markdown 変換の場合:
- Markdown から HTML への変換スキル(例:
canghe-markdown-to-html) - インストールされていない場合、ワークフローでインストールが提案されます
設定ファイルの場所(優先順位順):
- 環境変数
<cwd>/.canghe-skills/.env~/.canghe-skills/.env
トラブルシューティング
| 問題 | 解決策 |
|---|---|
| Markdown から HTML への変換スキルがない | 提案された URL から canghe-markdown-to-html をインストールします |
| API 認証情報がない | ステップ 5 のガイド付きセットアップに従います |
| アクセストークンのエラー | API 認証情報が有効で、期限切れでないことを確認します |
| ログインしていない(ブラウザー) | 初回実行時にブラウザーが開きます。QR コードをスキャンしてログインします |
| Chrome が見つからない | WECHAT_BROWSER_CHROME_PATH 環境変数を設定します |
| タイトル/要約がない | 自動生成を使用するか、手動で指定します |
| カバー画像がない | frontmatter にカバー画像を追加するか、記事ディレクトリに imgs/cover.png を配置します |
| コメントのデフォルト設定が誤っている | EXTEND.md のキー need_open_comment と only_fans_can_comment を確認します |
| 貼り付けに失敗する | システムのクリップボード権限を確認します |
拡張機能のサポート
EXTEND.md によるカスタム設定に対応しています。パスとサポートされるオプションについては、Preferences セクションを参照してください。