Wechat Publish

# 图文公众号发布流程

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 Publish" with this command: npx skills add zhuchenggong19851114-design/wechat-publish

图文公众号发布流程

功能

将文案+配图一键发布到微信公众号草稿箱

核心特点

  • 灵活性:配图不限定类型,支持任意图片
  • 多种生图方式:MakeContents HTML渲染 / MiniMax生图 / 固定模板
  • 完整流程:文案→配图→上传微信→创建草稿→后台发布

⚠️ 关键易错点:图片必须先上传微信素材库

文章内容里用的图片URL必须是微信素材库的URL(mmbiz.qpic.cn开头)

不能用:

  • MakeContents临时路径(/app/uploads/rendered/xxx)
  • 外链图片URL
  • 本地文件路径

正确流程:

  1. 生成图片 → 下载到本地
  2. 上传到微信素材库 → 获得mmbiz.qpic.cn的URL
  3. 用微信返回的URL拼接到文章HTML里

漏了这个步骤,图片在文章里会显示不出来!


第一部分:文案准备

用户提供:

  • 文章主题/标题
  • 文章内容(可以是大纲或完整文案)
  • 配图需求(几张、什么类型)

第二部分:配图生成

方式A:MakeContents封面图(固定接口)

适合:封面/缩略图

curl -s -X POST "http://localhost:3710/api/content/render" \
  -H "Content-Type: application/json" \
  -d '{"cover_word":"标签","cover_title":"标题","cover_description":"描述","cover_emoji":"🤖"}'

方式B:MakeContents HTML长图(灵活模板)

适合:详情页、工具展示、数据对比、步骤说明等任意图

生成步骤:

  1. 写HTML内容(可自定义CSS样式)
  2. 调用render-text接口转图片
# 1. 生成HTML文件
cat > /tmp/custom_image.html << 'EOF'
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
body {
  font-family: system-ui, -apple-system, sans-serif;
  background: #f5f5f7;
  padding: 40px 20px;
}
.title {
  font-size: 28px;
  font-weight: bold;
  color: #1a1a1a;
  text-align: center;
  margin-bottom: 20px;
}
/* 自定义内容样式 */
</style>
</head>
<body>
<div class="title">你的标题</div>
<!-- 自定义内容 -->
</body>
</html>
EOF

# 2. 转图片(width=750适合手机,height按需调整)
HTML=$(cat /tmp/custom_image.html | python3 -c "import sys,json; print(json.dumps(sys.stdin.read()))")
curl -s -X POST "http://localhost:3710/api/content/render-text" \
  -H "Content-Type: application/json" \
  -d "{\"html\":$HTML,\"width\":750,\"height\":1200}"

方式C:MiniMax图片生成

适合:需要AI创意生成的配图(产品图、场景图、插画等)

# 使用mmx CLI
mmx image generate --prompt "描述" --aspect-ratio 16:9 --output /tmp/gen_image.png

常用Twemoji Emoji(用于HTML模板中)

格式:https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/72x72/{code}.png

EmojiCode
🤖1f916
🎨1f3a8
📊1f4ca
🎙️1f3a4
📡1f4e2
2705
274c
⚠️26a0
💡1f4a1
🚀1f680
2b50
🔥1f525

emoji转code方法:python3 -c "print(hex(ord('🤖'))[2:])"1f916


第三部分:从容器下载图片

# 封面图
docker cp autocontents-makecontents-1:/app/uploads/rendered/{session_id}_cover.png /tmp/cover.png

# 长图
docker cp autocontents-makecontents-1:/app/uploads/rendered/{session_id}_text.png /tmp/detail.png

# 复制到workspace(可选)
cp /tmp/cover.png /home/success/.openclaw/workspace/
cp /tmp/detail.png /home/success/.openclaw/workspace/

第四部分:微信API上传

凭证

# 获取Access Token
curl -s -X POST "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=YOUR_APPID&secret=YOUR_SECRET"

返回值中的access_token有效期2小时

上传图片到素材库(永久素材)

ACCESS_TOKEN="获取到的token"

# 封面图
curl -s -X POST "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$ACCESS_TOKEN&type=image" \
  -F "media=@/tmp/cover.png"

# 详情图
curl -s -X POST "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$ACCESS_TOKEN&type=image" \
  -F "media=@/tmp/detail.png"

返回格式:{"media_id":"xxx","url":"http://mmbiz.qpic.cn/..."}

上传缩略图(用于文章thumb_media_id)

curl -s -X POST "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$ACCESS_TOKEN&type=thumb" \
  -F "media=@/tmp/cover.png"

返回的media_id用于文章配置的thumb_media_id字段


第五部分:创建图文草稿

⚠️ 文章内容中的图片URL必须用微信素材库的mmbiz.qpic.cn URL!

cat > /tmp/article.json << 'EOF'
{
  "articles": [{
    "thumb_media_id": "上一步获取的thumb media_id",
    "title": "文章标题",
    "author": "",
    "digest": "文章摘要",
    "show_cover_pic": 1,
    "content": "HTML格式的文章内容,图片URL用微信素材库的URL",
    "content_source_url": ""
  }]
}
EOF

curl -s -X POST "https://api.weixin.qq.com/cgi-bin/draft/add?access_token=$ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d @/tmp/article.json

第六部分:发布

API发布(服务号可用)

curl -s -X POST "https://api.weixin.qq.com/cgi-bin/freepublish/submit?access_token=$ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"media_id":"草稿media_id","pub_choose_type":1}'

手动发布(个人订阅号)

  • 登录 mp.weixin.qq.com
  • 内容与互动 → 草稿箱
  • 找到文章 → 发布

常用模板参考

详情页长图模板

路径:skills/auto-contents/references/templates/detail-page-gray.html

工具栈图模板

路径:skills/auto-contents/references/templates/tool-stack.html

数据对比图模板(可直接用)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:system-ui,-apple-system,sans-serif;background:#f5f5f7;padding:30px 20px}
.title{font-size:22px;font-weight:bold;color:#1a1a1a;margin-bottom:20px;text-align:center}
.section{margin-bottom:24px}
.section-title{font-size:16px;font-weight:bold;margin-bottom:10px;padding-left:8px}
.green{border-left:4px solid #4CAF50}
.red{border-left:4px solid #f44336}
.items{display:flex;flex-direction:column;gap:8px}
.item{display:flex;gap:8px;font-size:14px;color:#333}
.check{color:#4CAF50}.cross{color:#f44336}
</style>
</head>
<body>
<div class="title">标题</div>
<div class="section green">
<div class="section-title">✅ 能做的</div>
<div class="items"><div class="item"><span class="check">✓</span>内容1</div></div>
</div>
<div class="section red">
<div class="section-title">❌ 不能做的</div>
<div class="items"><div class="item"><span class="cross">✗</span>内容1</div></div>
</div>
</body>
</html>

注意事项

IP白名单

微信API需要IP在白名单内,当前IP:14.218.121.191

图片URL(重要!)

  • 草稿中的图片URL必须用微信返回的永久素材URL(mmbiz.qpic.cn)
  • 不能用MakeContents临时路径、外链、本地路径
  • 每张要放进文章的图都必须先上传微信素材库

个人订阅号限制

  • API创建草稿:✅
  • API发布:❌(需手动发布)
  • 上传素材:✅

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.

Coding

Spicy Ai Video

Turn a 60-second talking head clip into 1080p high-energy edited videos just by typing what you need. Whether it's turning bland footage into visually intens...

Registry SourceRecently Updated
Coding

Video Maker Fast

Get polished MP4 videos ready to post, without touching a single slider. Upload your video clips (MP4, MOV, AVI, WebM, up to 500MB), say something like "trim...

Registry SourceRecently Updated
Coding

Generation Generator

generate text prompts or clips into AI generated videos with this skill. Works with MP4, MOV, PNG, JPG files up to 500MB. marketers, content creators, social...

Registry SourceRecently Updated
Coding

Editor On Android

Get edited MP4 clips ready to post, without touching a single slider. Upload your video clips (MP4, MOV, AVI, WebM, up to 500MB), say something like "trim th...

Registry SourceRecently Updated