返回顶部
a

aws-wechat-article-publish

将文章发布到微信公众号(API 写入草稿箱或提交发布),含发布前检查。当用户提到「发布」「提交」「群发」「推送」「发出去」「上传到公众号」「发到公众号」「可以发了吗」「发布前检查」时使用。

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
46
下载量
0
收藏
概述
安装方式
版本历史

aws-wechat-article-publish

# 发布 通过微信公众号 API 将排版稿写入**草稿箱**或再**提交发布**(由 **`config.yaml`** 的 **`publish_method`** 与命令行 **`--publish`** 控制)。 ## 配置检查 ⛔ 任何操作执行前,**必须**按 **[首次引导](../aws-wechat-article-main/references/first-time-setup.md)** 执行其中的 **「检测顺序」**。检测通过后才能进行以下操作(或用户明确书面确认「本次不检查」): ## 脚本目录 **Agent 执行**:本 skill 的 `{baseDir}` 为 **`skills/aws-wechat-article-publish/`**。发布子命令在 **`{baseDir}/scripts/publish.py`**(仓库根执行)。 | 脚本 / 子命令 | 用途 | |--------|------| | **`article_init.py`** | 初始化或更新本篇 **`article.yaml`**(及可选 **`closing.md`**)。用于总览 **本篇准备**(建目录后)或 **发布前** 补全元数据。仓库根执行:`python {baseDir}/scripts/article_init.py <文章目录> [--title … --author … --digest …]` | | **`getdraft.py`** | 独立于 `publish.py`:用于正式文章查询(`published-list` / `published-fields` / `publish-get` / `article-get`,对应 `freepublish/*`),可用于 `embeds.related_articles.manual` 为空时自动补全推荐链接。注意:`freepublish/*` 需要公众号具备对应接口权限。仓库根:`python {baseDir}/scripts/getdraft.py published-fields` | | `check-screening` | 校验 **`config.yaml`** 的 **`publish_method`**(**`draft`** / **`published`** / **`none`**) | | `check-wechat-env` | 按 **`config.yaml` 槽位**检查 `aws.env` 的 `WECHAT_N_APPID` / `WECHAT_N_APPSECRET` 是否已填(**调用 `publish.py` 前建议跑**) | | `check` | 环境检查:`aws.env`、各槽位、依赖、可选探测 token | | `accounts` | 列出 **`config.yaml`** 中各微信槽位名称,并标记 `aws.env` 凭证缺项 | | `full` / `token` / … | 调微信 API(需 **`aws.env`** 微信凭证) | ## 凭证与 `publish_method` ⛔ ### `publish_method`(以仓库 **`config.yaml`** 为准) | 值 | 含义 | 行为 | |----|------|------| | **`draft`**(默认) | 只进公众号**草稿箱** | **`full`** 创建草稿后**不**调用 freepublish 提交发布。 | | **`published`** | 草稿 + **提交发布** | **`full`** 创建草稿后继续提交发布(异步)。**`full --publish`** 可**单次强制**带发布,即使当前为 **`draft`**。 | | **`none`** | 用户明确不填微信 | **`full`** **立即退出**,不调任何微信接口(**`--publish`** 也会被忽略)。其它子命令(`token` 等)仍要凭证。 | ### 多账号时如何选槽位 1. 运行 **`python {baseDir}/scripts/publish.py accounts`**,从 **`config.yaml` 的 `wechat_accounts` + `wechat_N_name`** 向用户展示列表(例如:`您有2个账号:1."xiaoming",2."xiaoz"`)必须询问用户选择哪个账号发布到草稿箱,然后根据用户选择发布到指定的账号。 2. 在 **`config.yaml`** 写 **`wechat_publish_slot: <整数>`**,**或**命令行 **`--account <序号或名称>`**(**CLI 优先**,见 [articlescreening-schema.md](../aws-wechat-article-main/references/articlescreening-schema.md))。 ### 全局环境 在仓库根具备 **`aws.env`**(微信密钥)与 **`config.yaml`**(微信槽位数量与名称)。写作/生图见 **`validate_env.py`**(微信未齐仍可先做内容)。**`publish_method: none`** 时 **`full`** 会跳过;**`draft`/`published`** 发布前建议 **`check-wechat-env`**。API 端点优先取 **`WECHAT_N_API_BASE`**,若槽位未配则回退 **`config.yaml.wechat_api_base`**(两者都空时使用官方)。 ### 作者名回退 `full` / `create-draft` 若 **`article.yaml` 无 author**,回退 **`config.yaml`** 的 **`default_author`**。 ### `publish_completed`(本篇是否已发布完成) - 字段在**本篇** **`article.yaml`**。**`publish.py` 不读、不改**;由智能体维护。 - **`false`**:发布流程未闭环。 - **`true`**:已视为发布完成(草稿已确认 / 或 **`published`** 流程成功且运营确认)。 **本篇发布真正结束后**:将 **`publish_completed: true`** 写回 **`article.yaml`**。 **写回 `true` 的前置门禁(缺啥补啥)**: 1. `article.html` 存在; 2. 文章目录存在封面图 `cover.(png/jpg/jpeg/webp)`; 3. `article.md` 与 `article.html` 中均不含 `placeholder`; 4. 发布命令成功并拿到回执(`media_id` 或 `publish_id`)。 任一不满足:只可标记为“已提交草稿,未闭环”,**不得**写回 `publish_completed: true`。 ## 用户仅说「发布」且未明确路径时 ⛔ 在用户**未给出** `drafts/…` 路径、仅说「发布文章」「帮我发一下」等时: 1. **确定本篇目录**:列出仓库下 **`drafts/`** 中子目录;若**多篇**,请用户**指定一篇**或选「最新修改」的一篇再读该目录 **`article.yaml`**。**勿**在未确认目录时假定路径。 2. 读取该目录 **`article.yaml`** 中的 **`publish_completed`**(YAML 布尔:`true` / `false`;**缺省按 `false` 处理**)。 | `publish_completed` | 智能体对用户说明(可略作口语化,勿改含义) | |---------------------|---------------------------------------------| | **`true`** | 告知:**项目里本篇文档已按记录成功发布**;问:**您是否需要编写新文章?** 若需要 → 转交 [main](../aws-wechat-article-main/SKILL.md) / [writing](../aws-wechat-article-writing/SKILL.md) 从本篇准备或选题起走。 | | **`false`** 或缺省 | 读取 **`article.yaml`** 的 **`title`**(若无则用目录名简述),说明:**《{title}》尚未执行完成(发布流程未闭环)**;问:**是否需要继续并完成发布?** 或 **编写新文章?** 若继续本篇 → 再核对 **`config.yaml`** 的 **`publish_method`**、**`check-screening`**、**`check-wechat-env`** 等。 | ## 工作流 ``` 发布进度: - [ ] 前置:配置检查(见本节「配置检查」)⛔ - [ ] 第0步:若用户未给路径 → 选本篇目录 → 读 publish_completed → 按上表分流(true/false) - [ ] 第1步:读 **`config.yaml`** → **`draft` / `published`**(及是否 **`full --publish`**) - [ ] 第2步:读取 **`config.yaml`** 的 `wechat_accounts` + `wechat_N_name` 向用户展示账号列表并询问目标槽位;随后跑 **`check-wechat-env`** 校验 `aws.env` 凭证 → **`wechat_publish_slot` 或 `--account`** - [ ] 第3步:发布前检查(checklist + **`check-screening`** + **`check`**) - [ ] 第4步:准备文章目录 - [ ] 第5步:**`full`**(仅草稿或含发布,视上步) - [ ] 第6步:确认结果与用户说明 - [ ] 第7步:成功后写回 **`article.yaml`** 的 **`publish_completed: true`**;按需归档 ``` ## 交互顺序(最小提问) 0) **未给路径时**:先按上文 **「用户仅说发布」** 处理 **`publish_completed`**;用户选 **继续本篇** 后再做下列步骤。 1) **先看 `config.yaml` 的 `publish_method`**:**`draft`** = 默认只进草稿箱;**`published`** 或 **`full --publish`** = 再提交发布。 2) **多槽位**:展示账号列表(来源:`config.yaml` 的 `wechat_accounts` + `wechat_N_name`),请用户选槽位 → **`wechat_publish_slot`** 或 **`--account`**。 3) 缺微信字段:运行 **`check-wechat-env`**,补全 **`aws.env`** 后再发。 4) **发布失败**(由脚本 stderr / 微信 errcode 判断): - **网络类**(超时、连接失败、5xx):脚本已对单次请求 **自动重试 1 次**;仍失败 → 告知「网络不可用,请稍后重试或检查代理」。 - **凭证/配置类**(如 token 失败带 errcode、缺字段)→ 提示 **第几槽位**、检查 **APPID/SECRET、IP 白名单**,用户改正后再执行 **`full`** / **`publish`**。 5) **中间产物缺失**(封面缺失 / 存在 `placeholder`):先补产物再发;若用户坚持先发草稿,必须明确告知“正文配图未完成”,且保持 `publish_completed: false`。 ## 命令示例(仓库根) ```bash 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 ``` 详见 [references/usage.md](references/usage.md)、[references/submit-guide.md](references/submit-guide.md)、[references/api-reference.md](references/api-reference.md)。 ## 过程文件 | 读取 | 产出 | |------|------| | `article.html`、`imgs/`、**`article.yaml`**(含 **`publish_completed`** 等)、**`.aws-article/config.yaml`**、**`aws.env`**(微信槽位) | 发布到公众号草稿或提交发布;**成功后**由智能体将 **`publish_completed: true`** 写回 **`article.yaml`**(`publish.py` 不改此键) |

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 aws-wechat-article-publish-1775900762 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 aws-wechat-article-publish-1775900762 技能

通过命令行安装

skillhub install aws-wechat-article-publish-1775900762

下载 Zip 包

⬇ 下载 aws-wechat-article-publish v1.0.0

文件大小: 28.79 KB | 发布时间: 2026-4-12 09:07

v1.0.0 最新 2026-4-12 09:07
- Initial release of the AWS WeChat article publishing skill.
- Supports publishing articles to WeChat Official Accounts via API (draft or published), with pre-publish checks.
- Guides account selection and configuration validation, including multi-account support and credential checks.
- Handles article status tracking via article.yaml (`publish_completed: true/false`) for workflow management.
- Provides robust error handling, directory structure guidance, and step-by-step user interaction flow.
- Includes CLI scripts for publishing, environment validation, and account management.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部