baoyu-post-to-wechat について
baoyu-post-to-wechatは、WeChat公式アカウント向けの画像付き投稿や記事を作成・公開するエージェントスキルです。APIとブラウザーの手順に対応し、テーマやメタデータ、コメント設定を構成できます。
主な機能
- 01最大9枚の画像付き投稿
- 02APIまたはブラウザーでの記事公開
- 03MarkdownからWeChat向けHTMLへの変換
- 04テーマ、色、著者の既定値設定
- 05記事のコメント設定
活用シーン
- 01複数画像を使ったWeChat投稿の作成
- 02MarkdownまたはHTML記事の公開
- 03APIまたはブラウザー方式の選択
- 04著者とコメントの既定値の適用
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ideacco/ baoyu-skills-openclaw --skill baoyu-post-to-wechatインストール後、Claude Code で/baoyu-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.tsscripts/md/cli.tsscripts/md/code-themes/1c-light.min.cssa11y-dark.min.cssa11y-light.min.cssagate.min.cssan-old-hope.min.cssandroidstudio.min.cssarduino-light.min.cssarta.min.cssascetic.min.cssatom-one-dark-reasonable.min.cssatom-one-dark.min.cssatom-one-light.min.cssbrown-paper.min.csscodepen-embed.min.csscolor-brewer.min.cssdark.min.cssdefault.min.cssdevibeans.min.cssdocco.min.cssfar.min.cssfelipec.min.cssfoundation.min.css詳細
WeChat 公式アカウントに投稿する
言語
ユーザーの言語に合わせる:ユーザーが使用する言語で応答します。ユーザーが中国語で書いた場合は中国語で、英語で書いた場合は英語で応答します。
スクリプトディレクトリ
エージェントの実行:この SKILL.md のディレクトリを SKILL_DIR として特定し、${SKILL_DIR}/scripts/<name>.ts を使用します。
| スクリプト | 用途 |
|---|---|
scripts/wechat-browser.ts | 画像とテキストの投稿(图文) |
scripts/wechat-article.ts | ブラウザー経由で記事を投稿(文章) |
scripts/wechat-api.ts | API 経由で記事を投稿(文章) |
scripts/md-to-wechat.ts | Markdown → 画像プレースホルダー付きの WeChat 用 HTML |
scripts/check-permissions.ts | 環境と権限を確認 |
設定(EXTEND.md)
Bash を使用して、EXTEND.md が存在するかを次の優先順位で確認します。
# Check project-level first
test -f .baoyu-skills/baoyu-post-to-wechat/EXTEND.md && echo "project"
# Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
test -f "$HOME/.baoyu-skills/baoyu-post-to-wechat/EXTEND.md" && echo "user"
┌────────────────────────────────────────────────────────┬───────────────────┐ │ パス │ 場所 │ ├────────────────────────────────────────────────────────┼───────────────────┤ │ .baoyu-skills/baoyu-post-to-wechat/EXTEND.md │ プロジェクトディレクトリ │ ├────────────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.baoyu-skills/baoyu-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_color: blue
default_publish_method: api
default_author: 宝玉
need_open_comment: 1
only_fans_can_comment: 0
chrome_profile_path: /path/to/chrome/profile
テーマの選択肢:default、grace、simple、modern
色のプリセット:blue、green、vermilion、yellow、purple、sky、rose、olive、black、gray、pink、red、orange(または 16 進数の値)
値の優先順位:
- 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 認証情報 | ステップ 2 のガイド付きセットアップに従うか、.baoyu-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: Select method and configure credentials
- [ ] Step 3: Resolve theme/color and validate metadata
- [ ] Step 4: Publish to WeChat
- [ ] Step 5: Report completion
ステップ 0:設定を読み込む
EXTEND.md の設定を確認して読み込みます(上記の「設定」セクションを参照)。
重要:見つからない場合は、他のステップや質問に進む前に初回セットアップを完了してください。
後続のステップで使用する以下のデフォルト値を解決して保存します。
default_theme(デフォルトはdefault)default_color(設定されていない場合は省略 — テーマのデフォルトが適用されます)default_authorneed_open_comment(デフォルトは1)only_fans_can_comment(デフォルトは0)
ステップ 1:入力タイプを判定する
| 入力タイプ | 判定方法 | 操作 |
|---|---|---|
| HTML ファイル | パスが .html で終わり、ファイルが存在する | ステップ 3 に進む |
| 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:公開方法を選択して設定する
公開方法を確認します(EXTEND.md または CLI で指定されている場合を除く)。
| 方法 | 速度 | 要件 |
|---|---|---|
api(推奨) | 高速 | API 認証情報 |
browser | 低速 | Chrome、ログインセッション |
API を選択した場合 — 認証情報を確認:
# Check project-level
test -f .baoyu-skills/.env && grep -q "WECHAT_APP_ID" .baoyu-skills/.env && echo "project"
# Check user-level
test -f "$HOME/.baoyu-skills/.env" && grep -q "WECHAT_APP_ID" "$HOME/.baoyu-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: .baoyu-skills/.env (this project only)
B) User-level: ~/.baoyu-skills/.env (all projects)
保存場所の選択後、値を入力するよう促し、.env に書き込みます。
WECHAT_APP_ID=<user_input>
WECHAT_APP_SECRET=<user_input>
ステップ 3:テーマ/カラーの解決とメタデータの検証
-
テーマを解決します(一致した最初の項目を使用し、解決できた場合はユーザーに尋ねません)。
- CLI の
--theme引数 - EXTEND.md の
default_theme(ステップ 0 で読み込み済み) - フォールバック:
default
- CLI の
-
カラーを解決します(一致した最初の項目を使用します)。
- CLI の
--color引数 - EXTEND.md の
default_color(ステップ 0 で読み込み済み) - 未設定の場合は省略します(テーマのデフォルトが適用されます)
- CLI の
-
フロントマター(Markdown)または HTML のメタタグ(HTML 入力)からメタデータを検証します。
| 項目 | 不足している場合 |
|---|---|
| タイトル | プロンプト:「タイトルを入力するか、Enter キーを押してコンテンツから自動生成してください」 |
| 概要 | プロンプト:「概要を入力するか、Enter キーを押して自動生成してください(SEO に推奨)」 |
| 作成者 | フォールバック順に使用します:CLI --author → フロントマター author → EXTEND.md default_author |
自動生成のロジック:
- タイトル:最初の H1/H2 見出し、または最初の文
- 概要:最初の段落を 120 文字に切り詰めます
- カバー画像を確認します(API の
article_type=newsでは必須です)。- CLI の
--coverが指定されている場合は使用します。 - それ以外の場合はフロントマター(
coverImage、featureImage、cover、image)を使用します。 - それ以外の場合は記事ディレクトリのデフォルトパス
imgs/cover.pngを確認します。 - それ以外の場合は、本文内で最初に登場する画像を使用します。
- それでも見つからない場合は、公開する前に処理を停止し、カバー画像を要求します。
- CLI の
ステップ 4:WeChat に公開する
重要:公開スクリプトは Markdown の変換を内部で処理します。Markdown を HTML に事前変換せず、元の Markdown ファイルを直接渡してください。これにより、API メソッドでは画像が <img> タグとしてレンダリングされ(API アップロード用)、ブラウザメソッドではプレースホルダーが使用されます(貼り付けて置き換えるワークフロー用)。
API メソッド(.md または .html を受け付けます):
npx -y bun ${SKILL_DIR}/scripts/wechat-api.ts <file> --theme <theme> [--color <color>] [--title <title>] [--summary <summary>] [--author <author>] [--cover <cover_path>]
重要:必ず --theme パラメーターを指定してください。default を使用する場合でも省略しないでください。--color は、ユーザーまたは EXTEND.md によって明示的に設定されている場合にのみ指定してください。
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→ フロントマターauthor→ EXTEND.mddefault_author
スクリプトのパラメーターで 2 つのコメント関連フィールドを指定できない場合でも、最終的な API リクエストボディに解決済みの値が含まれるようにしてください。
ブラウザメソッド(--markdown または --html を受け付けます):
npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --markdown <markdown_file> --theme <theme> [--color <color>]
npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --html <html_file>
ステップ 5:完了レポート
API メソッドの場合は、下書き管理リンクを含めます。
WeChat Publishing Complete!
Input: [type] - [path]
Method: API
Theme: [theme name] [color if set]
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] [color if set]
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 の認証情報
- ステップ 2 のガイド付きセットアップ、または
.baoyu-skills/.envへの手動設定
ブラウザメソッドの場合:
- Google Chrome
- 初回実行時:WeChat 公式アカウントにログインします(セッションは保持されます)
設定ファイルの場所(優先順位順):
- 環境変数
<cwd>/.baoyu-skills/.env~/.baoyu-skills/.env
トラブルシューティング
| 問題 | 解決策 |
|---|---|
| API 認証情報がない | ステップ 2 のガイド付きセットアップに従ってください |
| アクセストークンのエラー | API 認証情報が有効で、期限切れでないことを確認してください |
| ログインしていない(ブラウザー) | 初回実行時にブラウザーが開きます。QR コードをスキャンしてログインしてください |
| Chrome が見つからない | WECHAT_BROWSER_CHROME_PATH 環境変数を設定してください |
| タイトル/概要がない | 自動生成を使用するか、手動で入力してください |
| カバー画像がない | frontmatter にカバー画像を指定するか、記事ディレクトリに imgs/cover.png を配置してください |
| コメントのデフォルト設定が誤っている | EXTEND.md のキー need_open_comment と only_fans_can_comment を確認してください |
| 貼り付けに失敗する | システムのクリップボード権限を確認してください |
拡張機能のサポート
EXTEND.md でカスタム設定ができます。パスとサポートされるオプションについては、設定のセクションを参照してください。
OpenClaw の移行に関する注意事項
- 移行モード:OpenClaw ネイティブを優先
- 保持されるディレクトリ:
- scripts:あり
- references:あり
- prompts:なし
- 外部依存関係:bun、chrome、external-ai-api、social-platform-access
- リスクレベル:高
- 検出された環境変数:
ACCESS_TOKEN、API、HOME、WECHAT_BROWSER_CHROME_PATH - 設定の互換性:元の
.baoyu-skills/<skill>/EXTEND.mdの動作を維持し、必要に応じてランタイムラッパーに OpenClaw 互換のパスを追加してください。
OpenClaw の事前チェック
- スクリプトの例で
npx -y bun ...を使用する場合は、bunが利用可能であることを確認してください。 - CDP/ブラウザー自動化のフローで使用する Chrome がインストールされ、起動可能であることを確認してください。
- 実行前に、必要な API 認証情報が環境変数として設定されていることを確認してください。
- 投稿またはスクレイピングの操作を行う前に、アカウントのセッション/Cookie が有効であることを確認してください。
検出された環境変数:ACCESS_TOKEN、API、HOME、WECHAT_BROWSER_CHROME_PATH
OpenClaw の失敗時のフォールバック
- ランタイムの依存関係が不足している場合は、実行を停止し、正確なインストール/セットアップコマンドを返してください。
- API 呼び出しに失敗した場合は、プロバイダー/モデルのフラグを明示して再試行するよう提案し、キーのスコープを確認してください。
- ブラウザーの自動化に失敗した場合は、利用可能であれば手動/待機モードに切り替えてください。
- プラットフォームが自動化をブロックする場合は、再試行を繰り返さず、手動での公開/エクスポート手順を提示してください。
- リスクの高いワークフローでは、取り消せない操作を行う前に、ユーザーの明示的な確認を求めてください。