mcpField
W
wechat-article-publisher

wechat-article-publisher

github.com/iamzifeiマーケティング・グロース1572.6k 回インストール11 週間前に更新
リポジトリ

wechat-article-publisher について

WeChat Official Account の下書きに Markdown または HTML の記事を登録する公開スキルです。API で認可済みアカウントを確認し、形式を処理して下書きを作成します。公開操作はユーザーが行います。

主な機能

  1. 01API で認可済みアカウントを一覧表示
  2. 02Markdown を変換して下書きに登録
  3. 03HTML の書式を保持
  4. 04画像テキスト形式の記事に対応
  5. 05公開前に API キーを確認

活用シーン

  1. 01Markdown 記事を WeChat の下書きに保存
  2. 02HTML のニュースレターを下書きとして登録
  3. 03認可済みアカウントから登録先を選択
  4. 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 を直接呼び出します。

  1. 環境変数から WECHAT_API_KEY を読み込む
  2. 利用可能な WeChat アカウントを一覧表示する(ユーザーが指定していない場合)
  3. ファイル形式(Markdown または HTML)を判別し、適切に解析する
  4. 公開 API を呼び出して WeChat に下書きを作成する
  5. 下書きの詳細を添えて、成功を報告する

対応ファイル形式:

  • .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

設定されていない場合は、ユーザーに次の手順を案内します。

  1. .env.example を .env にコピーする
  2. 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

パラメーター:

パラメーター型必須説明
wechatAppidstringはいWeChat AppID
titlestringはい記事のタイトル(最大 64 文字)
contentstringはい記事のコンテンツ(Markdown/HTML)
summarystringいいえ記事の要約(最大 120 文字)
coverImagestringいいえカバー画像の URL
authorstringいいえ著者名
contentFormatstringいいえ'markdown'(デフォルト)または 'html'
articleTypestringいいえ'news'(デフォルト)または 'newspic'
エラーコード
コード説明
API_KEY_MISSINGAPI キーが指定されていません
API_KEY_INVALIDAPI キーが無効です
ACCOUNT_NOT_FOUNDアカウントが見つからないか、認証されていません
ACCOUNT_TOKEN_EXPIREDアカウントの認証期限が切れています
INVALID_PARAMETERパラメーターが無効です
WECHAT_API_ERRORWeChat API の呼び出しに失敗しました
INTERNAL_ERRORサーバーエラー

重要なルール

  1. 自動公開は絶対にしない — 下書きとして保存するだけにし、ユーザーが手動で公開します
  2. 最初に API キーを確認する — 設定されていない場合は、すぐに処理を中止します
  3. 最初にアカウント一覧を取得する — ユーザーが複数のアカウントを持っている場合があります
  4. エラーを適切に処理する — 分かりやすいエラーメッセージを表示します
  5. 元のコンテンツを保持する — ユーザーの Markdown を不必要に変更しません

対応形式

Markdown ファイル(.md)
  • H1 見出し(# )→ 記事のタイトル
  • H2/H3 見出し(##、###)→ セクション見出し
  • 太字(テキスト)
  • 斜体(テキスト)
  • リンク テキスト
  • 引用(> )
  • コードブロック(...)
  • リスト(- または 1.)
  • 画像 代替テキスト → WeChat に自動アップロードされます
HTML ファイル(.html)
  • <title> または <h1> → 記事タイトル
  • すべての HTML 書式を保持します(スタイル、表など)
  • <img> タグ → 画像は自動的に WeChat にアップロードされます
  • 最初の <p> → 概要として自動抽出されます
  • インラインスタイルとリッチフォーマットに対応しています

HTML タイトルの抽出優先順位:

  1. <title> タグの内容
  2. 最初の <h1> タグの内容
  3. フォールバックとして「無題」

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 を使用する理由
  1. 信頼性:API を直接呼び出す方法は、ブラウザーの自動操作よりも安定しています
  2. 速度:ブラウザーの起動、ページの読み込み、UI の操作が不要です
  3. シンプルさ:1 つのコマンドで公開できます
  4. 移植性:Python が動作するあらゆるシステムで使えます(macOS のみに依存するものはありません)
コンテンツのガイドライン
  1. 画像:可能な場合は公開 URL を使用してください。ローカル画像はアップロードされます
  2. タイトル:64 文字以内にしてください
  3. 概要:指定がない場合、最初の段落から自動抽出されます
  4. カバー画像:指定がない場合、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 番目の手順で実際に試す段階になってから、設定方法と取得方法を案内します。 ここで初心者が離脱することが最も多いためです。

コメント