Skip to content
FunCoding

Search

Search docs, Skills and MCP

aws-wechat-article-publish

公众号发布|公众号草稿箱|公众号群发|图文推送|微信 API|wechat automation|WeChat API automation|auto publish|scheduled publish — 公众号 API 发布工具,图文入草稿箱或直接群发,支持封面素材上传、发布前检查与 draft/published 模式切换。面向公众号运营、自动化内容团队、开发者。触发词:「发布」「提交」「群发」「推送」「发出去」「上传到公众号」「发到公众号」「可以发了吗」「发布前检查」。需要多环节串联(写+审+排+配图+发)请走 aws-wechat-article-main。

DevOps 与云666skills/aws-wechat-article-publish/SKILL.md

Install

Send this to Claude Code, Codex or Cursor. The agent checks the Skill for safety first and installs it only after you confirm.

读取 https://funcoding.ai/skills/aiworkskills/wechat-article-skills/aws-wechat-article-publish/install.md ,按里面的步骤帮我安装这个 Skill。

SKILL.md

发布

公众号 API 直连发布 —— 图文入草稿箱或直接群发,素材上传、发布前检查一站式完成。

套件说明 · 本 skill 属 aws-wechat-article-* 一条龙套件(共 9 个 slug,入口 aws-wechat-article-main)。跨 skill 的相对引用依赖同一 skills/ 目录,建议一并 clawhub install 全套。源码:https://github.com/aiworkskills/wechat-article-skills

能力披露(Capabilities)

本 skill 调 publish.py 直连微信公众号官方 API 发布图文。会把本篇 article.html 与 imgs/* 文件作为 POST body 上传到微信服务器。

  • 凭证读取:aws.env 的 WECHAT_{N}_APPID / WECHAT_{N}_APPSECRET(多槽位,N≥1)
  • 凭证外发:APPID / APPSECRET 以 query string 发给 api.weixin.qq.com/cgi-bin/token 换 access_token;后续请求带 access_token。微信返回的 token 只在进程内存短期缓存,不落盘
  • 内容外发:封面与正文插图以 multipart 发给 material/add_material;article.html 正文与标题/摘要以 JSON POST 发给 draft/add、freepublish/submit
  • 网络目标:默认 api.weixin.qq.com;可用 WECHAT_{N}_API_BASE / config.yaml.wechat_api_base 自配反代
  • 文件读:.aws-article/config.yaml、aws.env、本篇 article.yaml、article.html、imgs/*
  • 文件写:
    • publish.py 不写 article.yaml——media_id / publish_id / publish_completed 只打印,写回由智能体做(见下「publish_completed 门禁」)
    • 图片超过微信大小限制时会在源图旁生成压缩缓存 <原名>_compressed.jpg(需 Pillow)。这个文件不会被自动清理,也不会被当作正文图上传
    • article_init.py 写本篇 article.yaml 与可选 closing.md
  • shell:{python} {baseDir}/scripts/ 下的 publish.py、getdraft.py、article_init.py

建议:首次运行用 publish_method: draft 只入草稿箱确认效果,再切 published 真正群发。

路由

从选题到发出整条流程 → aws-wechat-article-main。本 skill 单独触发适用于已有 article.html 与封面、只差最后一步上传的场景。

配置检查 ⛔

任何操作前先按 首次引导 · 检测顺序 执行,通过后才继续(或用户明确书面确认「本次不检查」)。单独安装本 skill 时的口径见 branches.md「六」。

脚本与子命令

{baseDir} = 本 SKILL.md 所在目录,所有命令在仓库根执行。

脚本 / 子命令用途
article_init.py初始化或更新本篇 article.yaml(及可选 closing.md)。{python} {baseDir}/scripts/article_init.py <文章目录> [--title … --author … --digest …]
getdraft.py查已群发文章(published-list / published-fields / publish-get / article-get),用于补齐往期推荐链接。见 branches.md「五」
check-screening校验 config.yaml 的 publish_method
check-wechat-env按 config.yaml 槽位检查 aws.env 的 WECHAT_N_APPID / APPSECRET 是否已填
check环境检查:aws.env、各槽位、依赖、可选探测 token
accounts列出 config.yaml 中各槽位名称,并标记 aws.env 缺项
full一键全流程(上传封面 → 上传正文图 → 建草稿 → 视配置提交发布)
token / upload-thumb / upload-content-image / create-draft / publish / status分步操作,见 usage.md

publish_method(以 .aws-article/config.yaml 为准)⛔

值含义full 的行为
draft(默认)只进草稿箱创建草稿后不调 freepublish
published草稿 + 提交发布创建草稿后继续提交发布(异步)。full --publish 可在 draft 下单次强制带发布
none用户明确不填微信立即退出,不调任何微信接口(--publish 也被忽略)。其它子命令仍要凭证

多账号选槽位 ⛔

  1. 跑 {python} {baseDir}/scripts/publish.py accounts,把 config.yaml 的 wechat_accounts + wechat_{i}_name 列给用户(例如「您有 2 个账号:1. xiaoming,2. xiaoz」)。必须请用户选一个,不要替他挑。
  2. 选定后写 config.yaml 的 wechat_publish_slot: <整数>,或命令行 --account <序号或名称>(CLI 优先)。

槽位的数量与名称只来自 config.yaml;aws.env 里只有凭证。字段说明见 articlescreening-schema.md。

publish_completed 门禁 ⛔

字段在本篇 article.yaml。publish.py 不读、不改,由智能体维护:false = 发布流程未闭环,true = 已视为发布完成。

写回 true 之前,四项缺一不可:

  1. article.html 存在;
  2. 文章目录下存在封面 cover.(png|jpg|jpeg|webp)(不在 imgs/ 里);
  3. article.md 与 article.html 中均不含 placeholder;
  4. 发布命令成功并拿到回执(media_id 或 publish_id)。

任一不满足:只可标记为「已提交草稿,未闭环」,不得写回 publish_completed: true。

封面裁剪框(2.35:1 / 1:1)的细则见 branches.md「三」。

工作流

发布进度:
- [ ] 第0步:⛔ 配置检查;用户未给路径 → 先定目录并读 publish_completed 分流
- [ ] 第1步:读 config.yaml 的 publish_method(及是否 full --publish)
- [ ] 第2步:accounts 列账号 → ⛔ 请用户选槽位 → check-wechat-env 校验凭证
- [ ] 第3步:发布前检查(pre-publish-checklist + check-screening + check)
- [ ] 第4步:确认本篇目录产物齐全(article.html、cover.*、无 placeholder)
- [ ] 第5步:full(仅草稿或含发布,视第 1 步)
- [ ] 第6步:确认回执并向用户说明
- [ ] 第7步:⛔ 四项门禁全过 → 写回 publish_completed: true

第 0 步的分流表见 branches.md「一」;第 3 步清单见 references/pre-publish-checklist.md;第 5/6 步失败时的四类处理见 branches.md「二」。

命令示例(仓库根)

{python} {baseDir}/scripts/publish.py check-screening
{python} {baseDir}/scripts/publish.py check-wechat-env
{python} {baseDir}/scripts/publish.py accounts
{python} {baseDir}/scripts/publish.py check
{python} {baseDir}/scripts/publish.py --account 1 full drafts/YYYYMMDD-标题slug/
{python} {baseDir}/scripts/getdraft.py published-fields

注意 --account 是全局选项,放在子命令之前。

分支与异常

未给路径的分流、发布失败四分类、封面裁剪框、几处回退、往期链接补齐、单独安装 → references/branches.md。

更多用法:usage.md、submit-guide.md、api-reference.md。

过程文件

读取产出
article.html、cover.*、imgs/、本篇 article.yaml、.aws-article/config.yaml、aws.env公众号草稿或已提交发布;成功后由智能体把 publish_completed: true 写回 article.yaml(publish.py 不改此键)

Similar Skills

shipping-and-launch
addyosmani/agent-skills103k

shipping-and-launch

Prepares production launches. Use when preparing to deploy to production, or when asking what needs to be in place before shipping. Use when you need a pre-launch checklist, when setting up monitoring, when planning a staged rollout, or when you need a rollback strategy.

DevOps & cloud

publish
code-yeongyu/oh-my-openagent70k

publish

Publish oh-my-opencode to npm by triggering the GitHub Actions publish workflow and verifying its artifacts. Ship-only: never runs pre-publish-review or re-reviews merged code unless the user explicitly asks. Argument: <patch|minor|major|explicit-semver>. Triggers: publish, release, deploy, npm publish.

DevOps & cloud

acceptance-orchestrator
sickn33/agentic-awesome-skills47k

acceptance-orchestrator

Use when a coding task should be driven end-to-end from issue intake through implementation, review, deployment, and acceptance verification with minimal human re-intervention.

DevOps & cloud

event-store-design
wshobson/agents40k

event-store-design

Design and implement event stores for event-sourced systems. Use when building event sourcing infrastructure, choosing event store technologies, or implementing event persistence patterns.

DevOps & cloud

arize-ai-provider-integration
github/awesome-copilot40k

arize-ai-provider-integration

Creates, reads, updates, and deletes Arize AI integrations that store LLM provider credentials used by evaluators and other Arize features. Supports any LLM provider (e.g. OpenAI, Anthropic, Azure OpenAI, AWS Bedrock, Vertex AI, Gemini, NVIDIA NIM). Use when the user mentions AI integration, LLM provider credentials, create integration, list integrations, update credentials, delete integration, or connecting an LLM provider to Arize.

DevOps & cloud

appinsights-instrumentation
github/awesome-copilot40k

appinsights-instrumentation

Instrument a webapp to send useful telemetry data to Azure App Insights

DevOps & cloud