wechat-publisher

将已完成的文章发布到微信公众号草稿箱。只负责排版转换、图片上传、草稿提交,不负责文章内容生成。当用户要求"发公众号""上传草稿箱""发布文章到公众号"时触发此技能。

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "wechat-publisher" with this command: npx skills add youyouyoumagic/magicx-wechat-publisher

微信公众号发送技能

边界

  • ✅ 本技能只做:Markdown/文本 → 公众号HTML → 上传图片 → 提交草稿箱
  • ❌ 本技能不做:选题、写作、内容生成(由文章生成技能负责)
  • 输入:已完成的文章内容 + 配图文件
  • 输出:公众号草稿箱中的可发布草稿

发布流程(5步)

Step 1: 获取 access_token(Agent 执行)

scripts/.wechat-config.json 读取 appid 和 secret,然后调用微信API:

curl "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={APPID}&secret={SECRET}"

返回 access_token,后续步骤都需要用到。

Step 2: 上传图片(Agent 执行)

此步骤由 Agent 通过 curl 调用微信API完成,不通过脚本。

  • 正文图片 → POST https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token={TOKEN}(multipart/form-data 上传,返回微信图床URL)
  • 封面图 → POST https://api.weixin.qq.com/cgi-bin/material/add_material?type=image&access_token={TOKEN}(返回 media_id)

Step 3: 转换HTML(Agent 执行)

将文章内容转为公众号专用HTML,必须遵守排版规范(见下方)。关键要求:

  • 替换所有图片 src 为 Step 2 获得的微信图床URL
  • 所有样式必须内联,禁止使用 <style> 标签或 CSS class

Step 4: 上传草稿(脚本执行)

将转换好的HTML保存为文件,使用附带脚本上传到草稿箱:

node scripts/upload-draft.js --html <html文件> --title <标题> [--author <作者>]

脚本会自动:

  1. scripts/.wechat-config.json 读取 AppID/Secret
  2. 调用微信API获取 access_token
  3. 通过 POST /cgi-bin/draft/add 将HTML内容提交到草稿箱

Step 5: 通知用户

上传成功后通知用户去公众号后台 → 内容与互动 → 草稿箱 中检查并设置封面图,确认后发布。

排版规范(公众号HTML标准)

全局规则

  • 所有样式必须内联,禁止 <style> 标签和 CSS class
  • 正文不含 <h1> 标题(标题由公众号自动显示),开头用摘要引导块代替

元素规范

元素标签内联样式
摘要块<section>margin:10px 0 15px;padding:15px 20px;background:#f7f8fa;border-left:4px solid #0EA5E9;font-size:15px;color:#555;line-height:1.6;
正文段落<p>margin:3px 0;font-size:16px;line-height:1.75;color:#333;
加粗<strong>不加额外样式(禁止用 <span> 或 class 模拟加粗)
关键词高亮<strong><span>加粗+颜色双重强调,用于核心观点/关键数据/金句

关键词颜色高亮规则(重要!)

纯加粗在黑字中不够突出,必须对关键词/关键句加颜色,帮助读者快速扫到重点。

颜色方案

用途颜色写法
核心观点/金句品牌蓝 #0EA5E9<strong style="color:#0EA5E9;">关键句</strong>
重要数据/数字橙色 #f59e0b<strong style="color:#f59e0b;">40%</strong>
警示/冲突红色 #ef4444<strong style="color:#ef4444;">警示内容</strong>
正面/增长绿色 #10b981<strong style="color:#10b981;">增长数据</strong>
普通加粗默认黑色<strong>普通强调</strong>

使用原则

  • 每段最多高亮1-2处,不要全篇都是彩色(否则失去重点)
  • 金句/核心观点用品牌蓝(最常用)
  • 关键数字用橙色(数据冲击感)
  • 不要在一句话里混用多种颜色
  • 普通强调仍然用无颜色的 <strong>,颜色只给最关键的内容 | 二级标题 | <h2> | font-size:20px;font-weight:bold;color:#111;margin-top:15px;margin-bottom:5px;padding-left:12px;border-left:4px solid #0EA5E9; | | 三级标题 | <h3> | font-size:17px;font-weight:bold;color:#222;margin-top:12px;margin-bottom:3px; | | 分割线 | <hr> | border:none;border-top:1px solid #eee;margin:8px 0;(禁止用 div 模拟) | | 引用块 | <blockquote> | margin:3px 0;padding:12px 18px;background:#f7f8fa;border-left:4px solid #0EA5E9;color:#555;font-style:italic; | | 图片容器 | <p> | text-align:center;margin:3px 0; | | 图片 | <img> | max-width:100%;display:block;margin:0 auto;border-radius:12px; | | 落款 | <p> | margin-top:20px;padding-top:10px;border-top:1px solid #eee;font-size:14px;color:#999;text-align:center;line-height:2; |

落款标准内容

<p style="margin-top:20px;padding-top:10px;border-top:1px solid #eee;font-size:14px;color:#999;text-align:center;line-height:2;">有用AI — 有用才会用,会用才有用。<br/>AI领域连续创业者、落地实战派<br/>亲手打造AI产品,服务数百家中大型名企</p>

禁止事项

  • ❌ 使用 <style> 标签或 CSS class
  • ❌ 使用 <h1>(标题由公众号系统渲染)
  • ❌ 使用 base64 图片(使用外部图床URL或在公众号素材库上传)
  • ❌ 使用 <span class="bold"> 模拟加粗(必须用 <strong>
  • ❌ 使用 <div> 模拟分割线(必须用 <hr>
  • ❌ 落款中出现"个人观点,不构成投资建议"
  • ❌ 落款上方出现多条分割线(只保留落款自带的 border-top)

文章结构模板

参考 assets/article-template.html,标准结构为:

摘要引导块(section)
正文段落...
图片(推文截图等)
引用块
正文段落...
分割线
二级标题 + 图片 + 正文段落...
分割线
二级标题 + 图片 + 正文段落...
...(重复章节)
分割线
二级标题"写在最后" + 结尾段落...
落款

脚本工具

  • scripts/upload-draft.js — 草稿上传脚本(Node.js),负责调用微信API提交草稿
  • 仅使用 Node.js 内置模块(https, fs, path),无需安装额外依赖
  • 用法:node scripts/upload-draft.js --html <html文件> --title <标题> [--author <作者>]

配置说明

  • AppID/Secret 存放于 scripts/.wechat-config.json(本地文件,请勿提交到版本控制)
  • 首次使用:node scripts/upload-draft.js --appid xxx --secret xxx --save-config
  • 保存后后续使用无需再传入 appid/secret 参数
  • 服务器公网 IP 需加入公众号后台的 IP 白名单

关于

本技能由 magicx 开发维护。

  • 公众号:有用AI — 有用才会用,会用才有用
  • 视频号:有用AI
  • 邮箱:youyouyoumagic@gmail.com
  • 许可证:ISC © magicx

扫码关注视频号「有用AI」

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Expedy

Expedy integration. Manage Organizations, Pipelines, Users, Filters. Use when the user wants to interact with Expedy data.

Registry SourceRecently Updated
General

Evenium

Evenium integration. Manage Events, Users, Roles. Use when the user wants to interact with Evenium data.

Registry SourceRecently Updated
General

Exhibitday

ExhibitDay integration. Manage Organizations. Use when the user wants to interact with ExhibitDay data.

Registry SourceRecently Updated
General

Enigma

Enigma integration. Manage Deals, Persons, Organizations, Leads, Projects, Activities and more. Use when the user wants to interact with Enigma data.

Registry SourceRecently Updated