跳到主要内容
Python WeChat AI
使用 OpenClaw 自动化发布 AI 新闻至微信与小红书 综述由AI生成 利用 OpenClaw 智能体自动化发布每日 AI 新闻至微信公众号和小红书的全流程。主要步骤包括:使用 web_search 工具搜集当日 5 条重要 AI 资讯;整理为标准 Markdown 格式;调用 render_xhs.py 生成封面及内容卡片图片;通过微信公众号 API 获取 Token、上传素材并构建 HTML 草稿;最后调用小红书发布脚本完成笔记发布。文中详细说明了环境配置、API 凭证获取、Nginx 中转服务搭建以及 HTML 排版技巧,并提供了常见问题解答与进阶优化建议。
漫步 发布于 2026/4/6 更新于 2026/5/23 29 浏览一、背景与目标
每天有大量 AI 前沿资讯涌现,手动整理、配图、排版、发布极其耗时。本文的目标是:
搜索 :自动搜集当日 5 条最重要的 AI 新闻
制图 :生成封面图 + 内容卡片(小红书风格)
发布 :同步推送到微信公众号(图文草稿)和小红书(图文笔记)
整个流程通过 OpenClaw 的 Skill 机制 + 微信公众号 API + 小红书发布脚本串联实现。
二、前置准备
2.1 环境要求
项目 说明 运行环境 云服务器(Linux,已联网) 工作目录 /data/workspacePython 3.x(系统自带) curl 系统自带
2.2 安装 xhs-note-creator Skill
OpenClaw 的 Skill 是一套预置的工具脚本集合,可通过 use_skill 指令加载。xhs-note-creator 提供了:
小红书图片卡片渲染(render_xhs.py)
小红书笔记发布(publish_xhs.py)
安装后目录结构为:
/data/workspace/.agent/skills/xhs-note-creator/
├── SKILL.md
├── .env
└── scripts/
├── render_xhs.py
└── publish_xhs.py
2.3 配置小红书 Cookie
编辑 /data/workspace/.agent/skills/xhs-note-creator/.env,填入你的小红书登录 Cookie:
XHS_COOKIE=your_cookie_here
获取 Cookie 方法 :浏览器登录小红书 → F12 开发者工具 → Network → 任意请求 → 复制 Cookie 请求头的值。
2.4 准备微信公众号 API 凭证
需要一个有开发权限的微信公众号,获取:
AppID(公众号后台 → 开发 → 基本配置)
AppSecret(同上,点击重置获取)
2.5 配置微信 API 中转服务(可选)
微信公众号 API(api.weixin.qq.com)要求调用方的 IP 必须在公众号后台配置的 IP 白名单中。云服务器的 IP 是动态变化的,每次重启后 IP 可能不同,频繁手动更新白名单非常麻烦。
推荐的解决方案是:在一台固定公网 IP 的服务器上搭建 Nginx 反向代理,将其 IP 加入微信白名单,所有 API 请求通过该服务器转发给微信。
Nginx 配置示例:
server {
listen 8080;
location / {
proxy_pass https://api.weixin.qq.com;
proxy_ssl_server_name on;
proxy_set_header Host api.weixin.qq.com;
}
}
注意 :中转服务只是解决 IP 白名单问题,API 路径和参数与直连微信完全相同,无需做任何修改。调用时只需将请求发到 http://your-server:8080,Nginx 会自动将请求转发至 https://api.weixin.qq.com。
三、第一步:搜索今日 AI 新闻 OpenClaw 使用 web_search 工具,通过多个关键词搜索当日最重要的 AI 新闻:
搜索词 1 :AI 新闻 今日 YYYY 年 M 月 DD 日 最新进展
搜索词 2 :人工智能 最新进展 YYYY 年 M 月
搜索词 3 :AI YYYY 年 M 月 DD 日 大模型 机器人 最新消息
领域 关键词示例 大模型 / 芯片 GPT、Claude、Gemini、英伟达、芯片 机器人 具身智能、人形机器人、机器人 AI 应用 AI 智能体、AIGC、AI 工具 政策 / 产业 两会、政府报告、AI 政策、补贴 科研 / 论文 CVPR、NeurIPS、开源模型
搜索完成后,从结果中筛选出最具代表性的 5 条新闻,每条包含:标题、核心内容(100-200 字)、信息来源。
四、第二步:整理 Markdown 新闻文件 将搜集到的新闻整理成标准格式,保存为 /data/workspace/ai_news_MMDD.md:
---
emoji: "🤖"
title: "今日 5 大 AI 前沿新闻"
subtitle: "YYYY.MM.DD | 每日 AI 速递"
---
新闻正文(100-200 字,突出核心数据和关键词)
...
---
新闻正文...
---
新闻正文...
---
新闻正文...
---
新闻正文...
---
YAML 头部的 emoji、title、subtitle 会被渲染脚本用于生成封面图
每条新闻用 --- 分隔,渲染脚本会据此拆分为独立卡片
正文中适当加粗关键数字和词汇(使用 **加粗**)
五、第三步:生成小红书图片卡片
5.1 创建输出目录 mkdir -p /data/workspace/ai_news_output
5.2 调用渲染脚本 python3 /data/workspace/.agent/skills/xhs-note-creator/scripts/render_xhs.py \
/data/workspace/ai_news_MMDD.md \
-o /data/workspace/ai_news_output/ \
-t terminal \
-m separator
参数 说明 第一个参数 输入的 Markdown 文件(建议使用绝对路径) -o输出目录 -t terminal卡片主题(terminal = 深色科技风) -m separator分割模式(按 --- 分割为多张卡片)
5.3 输出文件结构 /data/workspace/ai_news_output/
├── cover.png
├── card_1.png
├── card_2.png
├── card_3.png
├── card_4.png
└── card_5.png
六、第四步:发布到微信公众号 微信公众号发布分为 4 个子步骤:获取 Token → 上传封面 → 上传正文图片 → 创建草稿。
以下命令直连微信 API(https://api.weixin.qq.com)。如果你配置了中转服务,只需将域名替换为中转服务地址,路径和参数完全不变。
6.1 获取 Access Token TOKEN=$(curl -s "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=YOUR_APPID&secret=YOUR_APPSECRET" | python3 -c "import sys,json; print(json.load(sys.stdin)['access_token'])" )
echo "Token: $TOKEN "
Token 有效期为 7200 秒(2 小时),每次发布前重新获取即可。
6.2 上传封面为永久素材 COVER_RESULT=$(curl -s -F "media=@/data/workspace/ai_news_output/cover.png;type=image/png" "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=${TOKEN} &type=image" )
THUMB_MEDIA_ID=$(echo $COVER_RESULT | python3 -c "import sys,json; print(json.load(sys.stdin)['media_id'])" )
echo "封面 media_id: $THUMB_MEDIA_ID "
使用 add_material 接口上传永久素材,返回的 media_id 将作为文章封面图使用。
⚠️ media_id 有效期为 3 天,超期后草稿中的封面图会失效,需重新上传。
6.3 上传正文图片 正文中引用的图片需使用 uploadimg 接口上传,返回可直接在 HTML 中使用的 URL:
for i in 1 2 3 4 5; do
echo "=== 上传 card_${i} .png ==="
curl -s -F "media=@/data/workspace/ai_news_output/card_${i} .png;type=image/png" "https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=${TOKEN} "
echo ""
done
{ "url" : "http://mmbiz.qpic.cn/..." }
记录所有图片的 URL,后续构建 HTML 正文时使用。
6.4 构建图文并茂的 HTML 正文 这是整个流程中最关键的一步。公众号正文是 HTML 格式,需要将图片和文字交替排列,形成'图文并茂'的效果。
以下是经过反复调试后确定的最优排版 Python 脚本:
import json
import urllib.request
TOKEN = "your_access_token"
THUMB_MEDIA_ID = "your_cover_media_id"
DATE_STR = "2026.3.11"
card_urls = [
"http://mmbiz.qpic.cn/..." ,
"http://mmbiz.qpic.cn/..." ,
"http://mmbiz.qpic.cn/..." ,
"http://mmbiz.qpic.cn/..." ,
"http://mmbiz.qpic.cn/..." ,
]
news_items = [
{"num" : "01" , "emoji" : "🚀" , "title" : "英伟达 GTC 2026 即将开幕" , "tag" : "芯片革命" , "body" : "英伟达年度技术盛会 GTC 2026 将于 <strong>3 月 16 日</strong> 在美国圣何塞召开..." },
]
def build_section (num, emoji, title, tag, img_url, body ):
return ('<section>'
'<section style="background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);border-radius:8px 8px 0 0;">'
f'<span style="font-family:Georgia,serif;margin-right:12px;line-height:1;">{num} </span>'
f'<span style="border:1px solid rgba(0,212,170,0.4);border-radius:4px;padding:2px 8px;margin-right:10px;white-space:nowrap;">{tag} </span>'
f'<span>{emoji} {title} </span>'
'</section>'
f'<section style="line-height:0;font-size:0;">'
f'<img src="{img_url} "/></section>'
f'<section style="border-radius:0 0 8px 8px;border:1px solid #e8e8e8;border-top:none;">'
f'<p>{body} </p>'
'</section>'
'</section>' )
header_html = ('<section style="background:linear-gradient(135deg,#0f0c29,#302b63,#24243e);border-radius:12px;">'
'<p>DAILY AI DIGEST</p>'
'<h1>🤖 今日 5 大 AI 前沿新闻</h1>'
f'<p>{DATE_STR} | 每日 AI 速递</p>'
'</section>' )
content_html = header_html
for item, url in zip (news_items, card_urls):
content_html += build_section(
item["num" ], item["emoji" ], item["title" ], item["tag" ], url, item["body" ])
footer_html = ('<section style="background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:12px;text-align:center;">'
'<p>🌟 觉得有用?帮个小忙吧~</p>'
'<p>👍 点赞 · 👀 在看 · 🔁 转发</p>'
'<p>#AI前沿 #人工智能 #AI 新闻 #科技资讯 #每日 AI 速递</p>'
'</section>' )
content_html += footer_html
payload = {
"articles" : [{
"title" : f"{DATE_STR} 每日 AI 速递" ,
"thumb_media_id" : THUMB_MEDIA_ID,
"author" : "" ,
"digest" : "英伟达 GTC2026、智元机器人、OpenClaw 安全警示、杨立昆 AMI 融资、两会 AI 政策" ,
"content" : content_html,
"content_source_url" : "" ,
"need_open_comment" : 1 ,
"only_fans_can_comment" : 0
}]
}
api_url = f"https://api.weixin.qq.com/cgi-bin/draft/add?access_token={TOKEN} "
data = json.dumps(payload, ensure_ascii=False ).encode("utf-8" )
req = urllib.request.Request(api_url, data=data, headers={"Content-Type" :"application/json;charset=utf-8" }, method="POST" )
with urllib.request.urlopen(req) as resp:
result = json.loads(resp.read().decode("utf-8" ))
print (f"草稿创建结果:{result} " )
如果使用中转服务,只需将 api_url 中的 https://api.weixin.qq.com 替换为中转服务地址,其余代码完全不变。
6.5 排版设计说明 ┌─────────────────────────────────────┐
│ DAILY AI DIGEST │ ← 深色渐变背景导语区
│ 🤖 今日 5 大 AI 前沿新闻 │
│ 2026.3 .11 | 每日 AI 速递 │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ 01 [芯片革命] 🚀 英伟达 GTC ... │ ← 深色标题栏(序号 + 标签 + 标题)
├─────────────────────────────────────┤
│ │
│ [全宽图片卡片] │ ← 图片(无缝衔接,无间距)
│ │
├─────────────────────────────────────┤
│ 新闻正文内容... │ ← 浅灰卡片背景正文
└─────────────────────────────────────┘
... (共 5 条,结构相同)
┌─────────────────────────────────────┐
│ 🌟 觉得有用?帮个小忙吧~ │ ← 深色结尾引导区
│ 👍 点赞 · 👀 在看 · 🔁 转发 │
│ #AI 前沿 & nbsp ; #人工智能 & nbsp ; #AI 新闻 & nbsp ; #科技资讯 & nbsp ; #每日 AI 速递
└─────────────────────────────────────┘
图片与标题栏无缝衔接 :图片容器设置 line-height:0; font-size:0;,消除 inline 元素底部的默认间距
正文与图片无缝连接 :正文卡片设置 border-top:none;,避免出现双边框
深色背景渐变 :使用 linear-gradient(135deg, #1a1a2e 0%, #16213e 100%) 实现科技感深色渐变
强调色 :使用 #00d4aa(青绿色)作为强调色,与深色背景形成对比
七、第五步:发布到小红书
7.1 准备小红书文案 小红书文案风格要求活泼、有 emoji、标题带日期:
🤖 今日 AI 速递 | YYYY .MM .DD
① 🚀 新闻 1 核心亮点(一句话)
② 🦾 新闻 2 核心亮点(一句话)
③ 🐙 新闻 3 核心亮点(一句话)
④ 🧠 新闻 4 核心亮点(一句话)
⑤ 🏛️ 新闻 5 核心亮点(一句话)
#AI 前沿 #人工智能 #AI 新闻 #科技资讯 #每日 AI 速递 #大模型 #AIGC #科技前沿 #AI 工具 #人工智能应用
7.2 调用发布脚本 python3 /data/workspace/.agent/skills/xhs-note-creator/scripts/publish_xhs.py \
--title "今日 5 大 AI 速递🔥2026.03.11" \
--desc "🤖 今日 AI 速递 | 2026.03.11 ① 🚀 英伟达 GTC 2026 即将开幕,Rubin 架构芯片+1 吉瓦算力集群重磅来袭! ② 🦾 智元机器人 ACoT-VLA 架构入选 CVPR 2026,消费级人形机器人今年下半年上市! ③ 🐙 OpenClaw 智能体爆火,国家互联网应急中心联合发布安全风险提示! ④ 🧠 杨立昆新公司 AMI 完成 10.3 亿美元融资,剑指推理与规划新路线! ⑤ 🏛️ 两会首提「智能经济」+「具身智能」,AI 写入政府工作报告新阶段! #AI 前沿 #人工智能 #AI 新闻 #科技资讯 #每日 AI 速递 #大模型 #AIGC #科技前沿 #AI 工具 #人工智能应用" \
--images \
/data/workspace/ai_news_output/cover.png \
/data/workspace/ai_news_output/card_1.png \
/data/workspace/ai_news_output/card_2.png \
/data/workspace/ai_news_output/card_3.png \
/data/workspace/ai_news_output/card_4.png \
/data/workspace/ai_news_output/card_5.png
7.3 发布成功示例 ✅ 发布成功!
笔记 ID:69b0eed7000000001d025bea
链接:https://www.xiaohongshu.com/explore/69b0eed7000000001d025bea
7.4 注意事项 问题 原因 解决方案 图片上传超时 云服务器网络限制,无法访问小红书 CDN 在本地电脑上运行发布脚本 Cookie 失效 小红书 Cookie 有效期约 30 天 重新登录获取新 Cookie 发布失败 内容含敏感词 调整文案措辞
八、整体流程总结 ┌──────────────────────────────────────────────────────────────┐
│ 每日 AI 速递发布流程 │
└──────────────────────────────────────────────────────────────┘
Step 1 : 搜索新闻 web_search × 3 次 → 筛选 5 条最重要 AI 新闻
Step 2 : 整理 Markdown → /data/workspace/ai_news_MMDD.md
Step 3 : 生成图片卡片 render_xhs.py → cover.png + card_1~5 .png → /data/workspace/ai_news_output/
Step 4 : 发布微信公众号
① 获取 Access Token
② 上传封面(add_material)→ 获取 thumb_media_id
③ 上传正文图片(uploadimg)× 5 → 获取 URL 列表
④ 构建 HTML 正文(图文交替排列)
⑤ POST /cgi-bin/draft/add → 草稿创建成功
Step 5 : 发布小红书 publish_xhs.py → 上传图片 → 发布笔记 → 返回笔记 ID 和链接
Step 6 : 通知用户(notify 工具)
九、常见问题 FAQ Q1:微信 API 返回 40001 错误(access_token invalid)
Access Token 已过期或格式错误。重新执行 Step 4.1 获取新 Token。
Q2:微信 API 返回 40164 错误(invalid ip)
当前调用方 IP 不在公众号后台配置的白名单中。解决方案:
方案 A:登录公众号后台 → 开发 → 基本配置 → IP 白名单,添加当前开发机 IP
方案 B:搭建固定 IP 的中转服务(见 2.5 节),长期有效
Q3:公众号草稿图片不显示
图片 URL 必须是通过 uploadimg 接口上传后返回的 mmbiz.qpic.cn 域名 URL,不能使用外部图片链接。
Q4:小红书发布后图片顺序不对
--images 参数的顺序就是图片在笔记中的展示顺序,确保 cover.png 排在第一位。
Q5:如何实现每日定时自动发布?
可以使用 OpenClaw 的 cron 工具创建定时任务:
每天 09:00 自动执行「每日 AI 速递」完整发布流程,完成后通过 notify 工具推送结果通知。
⚠️ 注意:定时任务依赖开发机持续运行,若开发机进入休眠状态,任务将暂停执行。
Q6:公众号草稿创建成功后如何发布?
草稿创建后需要在公众号后台 → 草稿箱中手动审核并点击发布。订阅号无群发权限,不支持通过 API 自动发布(调用 freepublish/submit 会返回 errcode 48001)。
十、进阶优化建议
新闻质量提升 :增加更多搜索关键词,覆盖英文来源(如 TechCrunch、The Verge)
图片风格定制 :修改 xhs-note-creator 的主题 CSS,打造专属品牌风格
自动化程度提升 :将整个流程封装为一个 Shell 脚本,配合 crontab 实现全自动
多平台扩展 :在现有基础上增加 B 站专栏、掘金、知乎等平台的发布
数据追踪 :记录每篇文章的阅读量、点赞数,分析哪类 AI 新闻最受欢迎
相关免费在线工具 RSA密钥对生成器 生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
Mermaid 预览与可视化编辑 基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
随机西班牙地址生成器 随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
curl 转代码 解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online