360 Secure SkillHub
360 安全技能中心

wechat-mp-draft-publisher

该 Skill 调用随包提供的 CLI 封装,按 getAuth、uploadArticleImage、uploadCoverImage、addDraft 的固定顺序,把本地文章内容与配图提交为微信公众号草稿,并输出 JSON 结果;运行需要本地凭据文件、内容文件和图片,可选用发布源自动下载可执行文件。

mesus
mesus
热度 37.37
最近更新 2026-05-18 12:38:50
分类:营销依赖:代码执行 / 第三方 API / 读写文件应用场景:社交媒体 / API 集成 / 工作流 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add wechat-mp-draft-publisher
Metadata
name
wechat-mp-draft-publisher
description
Publish WeChat Official Account draft articles through a packaged CLI executable that wraps WeChat API calls. Use when the user wants to publish or create a draft from local article content and images, especially when the required flow is getAuth -> uploadArticleImage -> uploadCoverImage -> addDraft.

WeChat MP Draft Publisher

Publish draft articles by calling the bundled wrapper script, which enforces this fixed sequence:

  1. getAuth
  2. uploadArticleImage
  3. uploadCoverImage
  4. addDraft

Requirements

  • Provide executable via one of:
    • Local binary path:
      • CLI flag --bin /absolute/path/to/mp-weixin-skill
      • Env var MP_WECHAT_CLI_BIN
    • GitHub Release auto-download:
      • Env var MP_WECHAT_RELEASE_URL=https://github.com/<owner>/<repo>/releases/download/<tag>/<asset> (direct asset URL, supports zip or binary)
      • or:
      • Env var MP_WECHAT_GITHUB_REPO=owner/repo
      • Optional env MP_WECHAT_RELEASE_TAG=latest (default latest)
      • Optional env MP_WECHAT_ASSET_NAME=custom-asset-name
  • Ensure local credentials file exists for getAuth:
    • ~/.weixin_credentials
    • format:
      • appid=YOUR_APP_ID
      • secret=YOUR_APP_SECRET
  • Prepare these files before running:
    • Article content file (--content-file), usually HTML
    • Inline article image (--article-image)
    • Cover image (--cover-image)

Run

Use the wrapper script:

bash scripts/publish_draft.sh \
  --article-image /absolute/path/to/article-image.png \
  --cover-image /absolute/path/to/cover-image.png \
  --content-file /absolute/path/to/content.html \
  --title "Article Title" \
  --author "Author Name" \
  --digest "Optional digest"

GitHub Release mode (auto-download executable):

export MP_WECHAT_GITHUB_REPO="owner/repo"
export MP_WECHAT_RELEASE_TAG="latest"
bash scripts/publish_draft.sh \
  --cover-image /absolute/path/to/cover-image.png \
  --content-file /absolute/path/to/content.html \
  --title "Article Title"

Direct URL mode:

export MP_WECHAT_RELEASE_URL="https://github.com/Mesus/weixin-mp-skill/releases/download/v0.0.1/mp-weixin-skill.zip"
bash scripts/publish_draft.sh \
  --cover-image /absolute/path/to/cover-image.png \
  --content-file /absolute/path/to/content.html \
  --title "Article Title"

If uploadCoverImage response does not include usable media_id, pass it explicitly:

bash scripts/publish_draft.sh \
  --bin /absolute/path/to/mp-weixin-skill \
  --article-image /absolute/path/to/article-image.png \
  --cover-image /absolute/path/to/cover-image.png \
  --content-file /absolute/path/to/content.html \
  --title "Article Title" \
  --thumb-media-id "YOUR_MEDIA_ID"

Output Contract

Script prints one JSON object on stdout:

  • access_token: token returned by getAuth
  • article_image_url: URL returned by uploadArticleImage
  • cover_upload: raw JSON object returned by uploadCoverImage
  • thumb_media_id_used: value passed to addDraft
  • draft: raw JSON object returned by addDraft

On failure, script prints JSON error to stderr and exits non-zero.

Resource

  • CLI wrapper implementation details: references/cli-contract.md