wechat-article-publisher について
WeChat Official Account の下書きに Markdown または HTML の記事を登録する公開スキルです。API で認可済みアカウントを確認し、形式を処理して下書きを作成します。公開操作はユーザーが行います。
主な機能
- 01API で認可済みアカウントを一覧表示
- 02Markdown を変換して下書きに登録
- 03HTML の書式を保持
- 04画像テキスト形式の記事に対応
- 05公開前に API キーを確認
活用シーン
- 01Markdown 記事を WeChat の下書きに保存
- 02HTML のニュースレターを下書きとして登録
- 03認可済みアカウントから登録先を選択
- 04画像テキスト形式でコンテンツを登録
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ iamzifei/ wechat-article-publisher-skill --skill wechat-article-publisherインストール後、Claude Code で/wechat-article-publisherを入力して読み込まれたか確認します。
同梱ファイルscripts/parse_markdown.pyscripts/wechat_api.py
詳細
WeChat 記事パブリッシャー
Markdown または HTML のコンテンツを API 経由で WeChat 公式アカウントの下書きに公開します。形式は自動的に変換されます。
前提条件
- WECHAT_API_KEY 環境変数が設定されていること(.env ファイルから)
- Python 3.9+
- wx.limyai.com で認証済みの WeChat 公式アカウント
スクリプト
~/.claude/skills/wechat-article-publisher/scripts/ にあります。
wechat_api.py
アカウント一覧の取得と記事の公開を行う WeChat API クライアント:
# List authorized accounts
python wechat_api.py list-accounts
# Publish from markdown file
python wechat_api.py publish --appid <wechat_appid> --markdown /path/to/article.md
# Publish from HTML file (preserves formatting)
python wechat_api.py publish --appid <wechat_appid> --html /path/to/article.html
# Publish with custom options
python wechat_api.py publish --appid <appid> --markdown /path/to/article.md --type newspic
parse_markdown.py
Markdown を解析して構造化データを抽出します(任意。高度な用途向け):
python parse_markdown.py <markdown_file> [--output json|html]
ワークフロー
方針:「API 優先の公開」
ブラウザーを使った公開とは異なり、このスキルでは信頼性と速度を確保するため、API を直接呼び出します。
- 環境変数から WECHAT_API_KEY を読み込む
- 利用可能な WeChat アカウントを一覧表示する(ユーザーが指定していない場合)
- ファイル形式(Markdown または HTML)を判別し、適切に解析する
- 公開 API を呼び出して WeChat に下書きを作成する
- 下書きの詳細を添えて、成功を報告する
対応ファイル形式:
.mdファイル → Markdown として解析し、WeChat API によって変換されます.htmlファイル → HTML として送信され、書式が保持されます
手順ガイド
ステップ 1:API キーを確認する
操作を開始する前に、API キーが利用可能か確認します。
# Check if .env file exists and contains WECHAT_API_KEY
cat .env | grep WECHAT_API_KEY
設定されていない場合は、ユーザーに次の手順を案内します。
.env.exampleを.envにコピーするWECHAT_API_KEYの値を設定する
ステップ 2:利用可能なアカウントを一覧表示する
認証済みの WeChat アカウント一覧を取得します。
python ~/.claude/skills/wechat-article-publisher/scripts/wechat_api.py list-accounts
出力例:
{
"success": true,
"data": {
"accounts": [
{
"name": "我的公众号",
"wechatAppid": "wx1234567890",
"username": "gh_abc123",
"type": "subscription",
"verified": true,
"status": "active"
}
],
"total": 1
}
}
重要:
- アカウントが 1 つだけの場合は、自動的に使用します
- アカウントが複数ある場合は、ユーザーに選択してもらいます
- 公開時に使用する
wechatAppidを控えておきます
ステップ 3:記事を公開する
Markdown ファイルの場合:
python ~/.claude/skills/wechat-article-publisher/scripts/wechat_api.py publish \
--appid <wechatAppid> \
--markdown /path/to/article.md
HTML ファイルの場合(書式を保持):
python ~/.claude/skills/wechat-article-publisher/scripts/wechat_api.py publish \
--appid <wechatAppid> \
--html /path/to/article.html
小绿书(画像とテキストのモード)の場合:
python ~/.claude/skills/wechat-article-publisher/scripts/wechat_api.py publish \
--appid <wechatAppid> \
--markdown /path/to/article.md \
--type newspic
成功時のレスポンス:
{
"success": true,
"data": {
"publicationId": "uuid-here",
"materialId": "uuid-here",
"mediaId": "wechat-media-id",
"status": "published",
"message": "文章已成功发布到公众号草稿箱"
}
}
ステップ 4:結果を報告する
公開に成功した後:
- 下書きが作成されたことを確認します
- WeChat 管理画面で内容を確認し、手動で公開するようユーザーに伝えます
- 参照に役立つ ID があれば提示します
API リファレンス
認証
すべての API リクエストで X-API-Key ヘッダーが必要です。
X-API-Key: WECHAT_API_KEY
アカウント一覧の取得
POST https://wx.limyai.com/api/openapi/wechat-accounts
記事の公開
POST https://wx.limyai.com/api/openapi/wechat-publish
パラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| wechatAppid | string | はい | WeChat AppID |
| title | string | はい | 記事のタイトル(最大 64 文字) |
| content | string | はい | 記事のコンテンツ(Markdown/HTML) |
| summary | string | いいえ | 記事の要約(最大 120 文字) |
| coverImage | string | いいえ | カバー画像の URL |
| author | string | いいえ | 著者名 |
| contentFormat | string | いいえ | 'markdown'(デフォルト)または 'html' |
| articleType | string | いいえ | 'news'(デフォルト)または 'newspic' |
エラーコード
| コード | 説明 |
|---|---|
| API_KEY_MISSING | API キーが指定されていません |
| API_KEY_INVALID | API キーが無効です |
| ACCOUNT_NOT_FOUND | アカウントが見つからないか、認証されていません |
| ACCOUNT_TOKEN_EXPIRED | アカウントの認証期限が切れています |
| INVALID_PARAMETER | パラメーターが無効です |
| WECHAT_API_ERROR | WeChat API の呼び出しに失敗しました |
| INTERNAL_ERROR | サーバーエラー |
重要なルール
- 自動公開は絶対にしない — 下書きとして保存するだけにし、ユーザーが手動で公開します
- 最初に API キーを確認する — 設定されていない場合は、すぐに処理を中止します
- 最初にアカウント一覧を取得する — ユーザーが複数のアカウントを持っている場合があります
- エラーを適切に処理する — 分かりやすいエラーメッセージを表示します
- 元のコンテンツを保持する — ユーザーの Markdown を不必要に変更しません
対応形式
Markdown ファイル(.md)
- H1 見出し(# )→ 記事のタイトル
- H2/H3 見出し(##、###)→ セクション見出し
- 太字(テキスト)
- 斜体(テキスト)
- リンク テキスト
- 引用(> )
- コードブロック(
...) - リスト(- または 1.)
- 画像
→ WeChat に自動アップロードされます
HTML ファイル(.html)
<title>または<h1>→ 記事タイトル- すべての HTML 書式を保持します(スタイル、表など)
<img>タグ → 画像は自動的に WeChat にアップロードされます- 最初の
<p>→ 概要として自動抽出されます - インラインスタイルとリッチフォーマットに対応しています
HTML タイトルの抽出優先順位:
<title>タグの内容- 最初の
<h1>タグの内容 - フォールバックとして「無題」
HTML コンテンツの抽出:
<body>が存在する場合は、body の内容を使用します- それ以外の場合は、
<html>、<head>、<!DOCTYPE>を取り除き、残りの内容を使用します
記事の種類
news(通常の記事)
- 標準的な WeChat 記事形式
- Markdown/HTML に全面対応
- 画像を含むリッチテキスト
newspic(小绿书/画像メッセージ)
- 画像を中心とした形式(Instagram の投稿のような形式)
- コンテンツから抽出できる画像は最大 20 枚です
- テキストコンテンツは 1000 文字までです
- 画像は自動的に WeChat にアップロードされます
実行例
Markdown ファイル
ユーザー:「~/articles/ai-tools.md を WeChat 公式アカウントに公開して」
# Step 1: Verify API key
cat .env | grep WECHAT_API_KEY
# Step 2: List accounts
python ~/.claude/skills/wechat-article-publisher/scripts/wechat_api.py list-accounts
# Step 3: Publish (assuming single account with appid wx1234567890)
python ~/.claude/skills/wechat-article-publisher/scripts/wechat_api.py publish \
--appid wx1234567890 \
--markdown ~/articles/ai-tools.md
# Step 4: Report
# "文章已成功发布到公众号草稿箱!请登录微信公众平台预览并发布。"
HTML ファイル
ユーザー:「この HTML 記事を公式アカウントに公開して:~/articles/newsletter.html」
# Step 1: Verify API key
cat .env | grep WECHAT_API_KEY
# Step 2: List accounts
python ~/.claude/skills/wechat-article-publisher/scripts/wechat_api.py list-accounts
# Step 3: Publish HTML (auto-detects format)
python ~/.claude/skills/wechat-article-publisher/scripts/wechat_api.py publish \
--appid wx1234567890 \
--html ~/articles/newsletter.html
# Step 4: Report
# "文章已成功发布到公众号草稿箱!HTML格式已保留。请登录微信公众平台预览并发布。"
エラー処理
API キーが見つからない
Error: WECHAT_API_KEY environment variable not set.
解決策:API キーを記載した .env ファイルを設定するよう、ユーザーに案内します。
アカウントが見つからない
Error: ACCOUNT_NOT_FOUND - 公众号不存在或未授权
解決策:wx.limyai.com でアカウントを認証するよう、ユーザーに案内します。
トークンの有効期限切れ
Error: ACCOUNT_TOKEN_EXPIRED - 公众号授权已过期
解決策:wx.limyai.com で再認証するよう、ユーザーに案内します。
WeChat API エラー
Error: WECHAT_API_ERROR - 微信接口调用失败
解決策:一時的な問題の可能性があります。再試行するか、WeChat サービスの状態を確認してください。
ベストプラクティス
ブラウザーの自動操作ではなく API を使用する理由
- 信頼性:API を直接呼び出す方法は、ブラウザーの自動操作よりも安定しています
- 速度:ブラウザーの起動、ページの読み込み、UI の操作が不要です
- シンプルさ:1 つのコマンドで公開できます
- 移植性:Python が動作するあらゆるシステムで使えます(macOS のみに依存するものはありません)
コンテンツのガイドライン
- 画像:可能な場合は公開 URL を使用してください。ローカル画像はアップロードされます
- タイトル:64 文字以内にしてください
- 概要:指定がない場合、最初の段落から自動抽出されます
- カバー画像:指定がない場合、Markdown の最初の画像がカバーになります
ワークフローの効率化
Minimal workflow (1 command):
- list-accounts → get appid → publish → done
Full workflow (with verification):
1. Check .env → list accounts → confirm with user
2. Publish with options → report result
トラブルシューティング
Q:WECHAT_API_KEY はどこで取得できますか?
A:wx.limyai.com で WeChat アカウントを登録して認証すると、API キーを取得できます。
Q:複数のアカウントに公開できますか?
A:はい。list-accounts を使って認証済みアカウントをすべて確認し、対象の --appid を指定してください。
Q:WeChat で画像が表示されません。
A:画像にアクセス可能な URL が設定されていることを確認してください。ローカル画像は自動アップロードされますが、パスが正しくない場合は失敗することがあります。
Q:タイトルが長すぎます。
A:WeChat のタイトルは 64 文字までです。スクリプトは H1 の先頭 64 文字を使用します。
Q:news と newspic の違いは何ですか?
A:news は標準的な記事形式です。newspic(小绿书)は、テキスト量が限られた画像中心の形式です。
はじめての方へ(ユーザーが何を入力すればよいかわからない場合はこちら)
起動条件:/公众号发布 新手、「これはどう使うの?」「初めて使う」「何ができるの?」「一通り案内して」、
またはユーザーがスキル名を入力したものの、具体的なタスクを指定していない場合です。
このモードの鉄則は、決めつけない、要求しないことです。ユーザーは何も準備していない可能性があります。 いきなりファイル、API キー、具体的な要件を尋ねないでください。次の 4 つの手順に沿って進めます。
1. まず、これは何かを説明する(3 文以内)
一言で言えば、Markdown の記事を WeChat 公式アカウントの下書きに直接投稿でき、画像は自動でアップロードされます。 WeChat 公式 API を使用するため、クリック操作を模倣する方法より安定しています。 投稿されるのは下書きで、最終的に「公開」をクリックするのはユーザーです。
2. 番号付きの選択肢を提示し、Enter キーを押すだけで続けられるようにする
自由回答式の質問(「何をしたいですか?」など)は避けてください。初心者にとって負担になります。デフォルトを含む 3 つの選択肢を提示します。
想先看哪个?(直接回车 = 1)
1. 先看看发出去长什么样(示例)
2. 把我的 Markdown 发成草稿
3. 先讲讲要准备什么
3. その場で実演し、説明しながら進める
選択されたら、すぐにサンプルデータを使って実演します。ユーザーから何かを提供してもらう必要はありません。 各手順の後に「💡 今何が起きたか」を 1 行加え、その手順の意味を一言で説明します。
4. 修了
実演後に尋ねるのは、はい/いいえで答えられる質問を 1 つだけです。「ご自分の記事を使って実際に試してみますか?」
はいなら通常のフローに進みます。いいえなら、いつでも /公众号发布 新手 と入力して戻ってこられることを伝えます。
事前準備について:このスキルには、WeChat 公式アカウントの API 認証情報(.env に記載する WECHAT_API_KEY)が必要です。
初心者向けモードでは、事前に尋ねないでください。まずサンプルデータでの実演を終え、4 番目の手順で実際に試す段階になってから、設定方法と取得方法を案内します。
ここで初心者が離脱することが最も多いためです。