版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WorkBuddy实现公众号运营自动化实操流程文档·从零搭建AI资讯每日自动发布系统工具:WorkBuddy+Python+微信公众号API|适用场景:AI行业资讯自动采集与公众号小绿书发布目录1.项目概述与最终效果2.前置准备3.第一步:获取公众号API凭证4.第二步:配置IP白名单5.第三步:搭建Python发布环境6.第四步:配置凭证文件(隐私保护)7.第五步:创建内容与配图生成脚本8.第六步:测试发布流程9.第七步:创建WorkBuddy定时自动化任务10.踩坑记录与解决方案11.微信API接口速查表12.常见问题FAQ13.附录A:原始需求提示词
1项目概述与最终效果目标每天早上10:00自动完成:搜集AI行业最新资讯→生成6张配图+文字内容+标签主题→自动发布到微信公众号小绿书(图文消息)。系统整体流程搜集AI资讯(WebSearch)→生成6张配图(Python+Pillow)→整理内容JSON(标题/摘要/标签)→上传微信素材(API调用)→创建草稿(公众号后台)项目文件结构wechat_auto_publish/
├──wechat_publisher.py#核心发布脚本(API调用)
├──generate_cards.py#配图生成脚本(Pillow)
├──config.env#凭证配置(保密,已被.gitignore排除)
├──config.env.example#凭证配置模板(可公开)
├──content_template.json#内容JSON模板
├──requirements.txt#Python依赖列表
├──.gitignore#排除敏感文件
├──images/#生成的图片存放目录
│├──cover.png#公众号封面图(900x383)
│├──card_1.png~card_6.png#6张内容卡片
│└──temp/#临时下载图片目录
└──content/#每日内容JSON存放目录
└──daily_content.json#当日内容配置
2前置准备项目要求说明微信公众号必须个人订阅号即可创建草稿;如需自动发布(免手动),需完成微信认证WorkBuddy必须用于创建定时自动化任务、搜索资讯、生成配图Python环境必须WorkBuddy自带管理版Python,无需单独安装网络环境注意微信API服务器在国内,如使用代理需确保代理不影响API请求公网IP必须运行脚本的电脑的公网出口IP关于「自动发布」vs「创建草稿」未完成微信认证的公众号,没有freepublish接口权限,无法直接自动发布。系统会自动降级为创建草稿,你只需到公众号后台点一下「发布」即可。完成认证后,加上--publish参数即可全自动发布。
3第一步:获取公众号API凭证重要变更:凭证获取地址已迁移!AppID和AppSecret已从「微信公众平台()」迁移到「微信开发者平台」。在公众号后台的「设置与开发→基本配置」里已经找不到了。1.打开微信开发者平台:/platform/2.用公众号管理员微信扫码登录(运营者没有权限获取密钥)。3.进入「我的业务」→选择「公众号/服务号」→点击「基础信息」。4.找到「开发密钥」区域,获取:AppID:直接复制AppSecret:点击「重置」获取(需管理员扫码验证)AppSecret只在重置时显示一次!关闭页面后就看不到了,务必立即复制保存。重置后旧密钥立即失效。
4第二步:配置IP白名单微信API要求调用方IP必须在白名单中,否则会报40164错误。IP白名单与AppSecret在同一个页面。1.查看本机公网IP:浏览器访问/ip页面会显示类似:{"origin":"72"}2.在微信开发者平台→基础信息→开发密钥→APIIP白名单,填入你的公网IP。3.保存后等待2-5分钟生效。注意:换网络=换IP如果你从公司Wi-Fi切换到家里Wi-Fi,或者用手机热点,公网IP会变化,需要重新添加新IP到白名单。
5第三步:搭建Python发布环境3.1创建项目目录mkdir-pwechat_auto_publish/imageswechat_auto_publish/content3.2创建Python虚拟环境使用WorkBuddy自带的管理版Python:#创建虚拟环境
"C:\Users\<用户名>\.workbuddy\binaries\python\versions\3.13.12\python.exe"\
-mvenv"C:\Users\<用户名>\.workbuddy\binaries\python\envs\default"
#安装依赖
"C:\Users\<用户名>\.workbuddy\binaries\python\envs\default\Scripts\pip.exe"\
installrequestsPillow为什么用管理版Python?WorkBuddy的管理版Python运行在隔离目录中,不会污染系统环境。所有包安装在envs/default下,独立于系统Python。3.3核心脚本:wechat_publisher.py这是整个系统的核心,封装了微信公众号API的所有调用逻辑。关键结构如下:classWechatPublisher:
BASE_URL="/cgi-bin"
def__init__(self):
#读取config.env中的凭证
self.appid=os.getenv("WECHAT_APPID")
self.app_secret=os.getenv("WECHAT_APPSECRET")
#创建不走代理的Session(绕过本地代理)
self.session=requests.Session()
self.session.trust_env=False
xies={"http":None,"https":None}
defget_access_token(self):#1.获取access_token
defupload_content_image(self):#2.上传内容图片→微信URL
defupload_permanent_material(self):#3.上传封面永久素材→media_id
defcreate_draft(self):#4.创建草稿→draftmedia_id
defpublish_draft(self):#5.发布草稿(需认证)
defpublish_xiaolvshu(self):#主流程:串起以上所有步骤3.4使用方式#只创建草稿(推荐,未认证公众号用这个)
pythonwechat_publisher.pycontent/daily_content.json
#自动发布(需公众号已认证)
pythonwechat_publisher.pycontent/daily_content.json--publish
6第四步:配置凭证文件(隐私保护)4.1创建config.env#复制模板
cpconfig.env.exampleconfig.env
#编辑config.env,填入真实凭证
WECHAT_APPID=wx你的AppID
WECHAT_APPSECRET=你的AppSecret4.2创建.gitignore(防止泄露)安全红线绝对不能把AppSecret提交到代码仓库!#.gitignore
config.env
*.env
.env
images/temp/4.3config.env配置模板(可公开分享)#============================================
#微信公众号凭证配置
#============================================
#获取方式(已迁移到新平台):
#1.登录微信开发者平台/platform/
#2.进入我的业务->公众号/服务号->基础信息->开发密钥
#3.查看AppID,点击"重置"获取AppSecret(只显示一次,务必保存)
#4.IP白名单也在同一页面配置
#
#重要:请将此文件复制为config.env并填入真实凭证
#config.env已被.gitignore排除,不会提交到代码仓库
#============================================
WECHAT_APPID=你的AppID
WECHAT_APPSECRET=你的AppSecret隐私保护最佳实践①AppSecret只存在config.env中,不硬编码在脚本里
②.gitignore排除所有.env文件
③桌面上的明文凭证文件(如txt)用完即删
④脚本读取凭证时不输出到日志或网络
7第五步:创建内容与配图生成脚本5.1内容JSON格式每期小绿书的内容通过一个JSON文件定义:{
"title":"AI日报|2026-07-13",
"author":"AI助手",
"digest":"AI大会开幕、十万卡、GPT-5.6、腾讯开源",
"theme":"AI前沿资讯",
"tags":["AI","人工智能","科技前沿","AI日报"],
"auto_publish":false,
"cards":[
{
"title":"2026世界人工智能大会即将开幕",
"content":"7月17-20日上海举办,1100余家企业参展...",
"image_path":"images/card_1.png"
},
...(共6张)
]
}5.2微信API字段长度限制(实测)注意这是实操中踩过的坑!以下限制是实测得出的,官方文档没有明确标注。字段限制实测数据建议值title约64字节—不超过20个中文字符digest(摘要)约60字节20个中文字符(60字节)通过,21个字符(63字节)失败15-18个中文字符author约8字节"AI助手"(8字节)通过,"AI运营助手"(14字节)失败不超过4个中文字符content(正文)10万字符—无特殊限制脚本中已内置按UTF-8字节安全截断的方法:@staticmethod
def_truncate_bytes(text,max_bytes):
"""按UTF-8字节数截断字符串,避免截断到半个中文字符"""
iftextisNone:
return""
encoded=text.encode("utf-8")
iflen(encoded)<=max_bytes:
returntext
returnencoded[:max_bytes].decode("utf-8",errors="ignore")5.3配图生成脚本:generate_cards.py使用PythonPillow库生成科技风格的信息图卡片,不依赖外部AI绘图API。卡片设计要素尺寸:1024×1024px(正方形,适合小绿书展示)渐变背景:每张卡片用不同色调(蓝、红、紫、绿、橙、黄绿)元素:大编号+"AIDAILY"标识+分隔线+标题+摘要+日期/页码装饰:半透明细弧线+小点阵(简洁科技风格)封面图设计尺寸:900×383px(微信公众号推荐比例2.35:1)包含:大标题"AI日报"+日期+主题副标题+底部标语深蓝到青绿渐变,与卡片风格统一踩坑:PILRGBA透明度问题PIL在RGB模式下会忽略颜色的alpha通道,(255,255,255,30)会被渲染成纯白色,导致装饰元素变成刺眼的大白圆。解决方案:使用Image.new("RGBA",...)创建图像,绘制完成后用img.convert("RGB")再转回RGB保存。
8第六步:测试发布流程6.1验证凭证读取python-c"
importsys
sys.path.insert(0,'wechat_auto_publish')
fromwechat_publisherimportWechatPublisher
pub=WechatPublisher()
print(f'AppID:{pub.appid[:6]}...{pub.appid[-4:]}')
print('ConfigOK')
"6.2测试API连通性(获取access_token)python-c"
importsys
sys.path.insert(0,'wechat_auto_publish')
fromwechat_publisherimportWechatPublisher
pub=WechatPublisher()
token=pub.get_access_token()
print(f'SUCCESS:tokenlength={len(token)}')
"如果报40164错误说明IP白名单未生效。检查:①填入的IP是否正确②是否在开发者平台(不是公众平台)配置的③保存后等2-5分钟。6.3执行完整发布流程#生成配图
pythonwechat_auto_publish/generate_cards.py
#创建草稿(不加--publish)
pythonwechat_auto_publish/wechat_publisher.py\
wechat_auto_publish/content/daily_content.json成功后会输出:==================================================
草稿已创建,请到公众号后台手动发布
标题:AI日报|2026-07-13
图片:6张
草稿ID:F39t-av3V1QzTUtmZA0uL...
后台地址:
==================================================验证结果登录→草稿箱,检查标题、封面图、摘要、正文图片是否正常显示。确认无误后点击「发布」。
9第七步:创建WorkBuddy定时自动化任务在WorkBuddy中创建定时任务,每天10:00自动执行完整的资讯采集→配图生成→草稿创建流程。7.1任务配置配置项值任务名称AI公众号小绿书每日自动发布调度类型recurring(重复执行)调度规则FREQ=DAILY;BYHOUR=10;BYMINUTE=0;BYSECOND=0状态ACTIVE工作目录项目根目录7.2自动化Prompt(核心指令)自动化任务的Prompt定义了AI每天要执行的完整步骤:你是AI公众号运营自动化助手。请按以下步骤完成今日的公众号小绿书内容创作与发布。
##第一步:搜集AI行业最新资讯
1.使用WebSearch搜索"AI人工智能最新动态2026"
2.筛选出6条最有价值的资讯
3.为每条提炼:标题(15字以内)+核心内容(80-100字)
##第二步:生成6张配图和1张封面图
用Python+Pillow生成科技风格卡片(参考generate_cards.py)
文件命名:card_1.png~card_6.png+cover.png
##第三步:创建内容JSON文件
路径:wechat_auto_publish/content/daily_content.json
-title:AI日报|YYYY-MM-DD
-author:AI助手(不超过4个中文字符!)
-digest:关键词概括(不超过15个中文字符!)
-tags:3-5个标签
-auto_publish:false
##第四步:发布到微信公众号(创建草稿)
运行命令(不加--publish):
pythonwechat_auto_publish/wechat_publisher.py\
wechat_auto_publish/content/daily_content.json
##第五步:输出运营报告
今日主题+6条资讯列表+发布状态+提醒手动发布
##重要注意事项
-digest不超过15个中文字符(超过报45004错误)
-author不超过4个中文字符
-不使用--publish(未认证公众号会报48001)
-JSON发送时必须ensure_ascii=False自动化任务的工作方式WorkBuddy在指定时间自动启动一个AI对话,按照Prompt中的步骤逐步执行:搜索资讯、生成图片、创建JSON、运行Python脚本。全程无需人工干预,执行完毕后输出运营报告。
10踩坑记录与解决方案以下是实操过程中遇到的真实问题及解决方案,按严重程度排列:P0代理导致API请求失败现象:requests库请求微信API时超时或连接失败。原因:本地配了代理(如Clash/V2Ray,端口7890),requests默认读取系统代理设置,但代理未开启或无法连通。解决:创建Session时禁用代理:self.session=requests.Session()
self.session.trust_env=False#不读取系统代理环境变量
xies={"http":None,"https":None}P0中文变成\uXXXX乱码现象:公众号后台草稿标题显示为AI\u65e5\u62a5而非「AI日报」。原因:requests库的json=payload参数默认使用ensure_ascii=True,将中文转成Unicode转义序列。解决:手动序列化JSON,禁用ASCII转义:#错误写法
resp=self.session.post(url,json=payload,headers=headers)
#正确写法
resp=self.session.post(
url,
data=json.dumps(payload,ensure_ascii=False).encode("utf-8"),
headers=headers,
)P1digest/author字段长度超限(45004)现象:创建草稿报45004:descriptionsizeoutoflimit。原因:微信对digest和author字段有严格字节限制(官方文档未明确标注),实测digest约60字节、author约8字节。解决:①内容JSON中digest控制在15个中文字符以内②author不超过4个中文字符③脚本内置_truncate_bytes()按UTF-8字节安全截断。P1IP白名单40164错误现象:获取access_token报40164:invalidipxxx,notinwhitelist。原因:调用方IP未加入白名单,或配错了平台。解决:确认在微信开发者平台(不是公众平台)配置;确认IP无多余空格;保存后等2-5分钟。P1自动发布48001未授权现象:调用freepublish/submit报48001:API未授权。原因:公众号未完成微信认证,没有自动发布权限。解决:系统自动降级为只创建草稿,到公众号后台手动发布。完成认证后加--publish参数即可。P2配图大白圆装饰突兀现象:卡片上出现两个大白圆,视觉突兀。原因:PIL在RGB模式下忽略alpha通道,(255,255,255,30)被渲染成纯白色实心圆。解决:改用RGBA模式绘制,半透明装饰正常生效;大白圆替换为细弧线+小点阵。保存前convert("RGB")。P2Windows终端中文输出乱码现象:Python脚本在Windows终端输出的中文显示为乱码。解决:脚本开头添加:importsys
sys.stdout.reconfigure(encoding="utf-8")
sys.stderr.reconfigure(encoding="utf-8")
11微信API接口速查表步骤接口方法用途返回1/cgi-bin/tokenGET获取access_tokenaccess_token+expires_in2/cgi-bin/media/uploadimgPOST上传正文图片微信图片URL3/cgi-bin/material/add_materialPOST上传封面永久素材media_id4/cgi-bin/draft/addPOST创建草稿草稿media_id5/cgi-bin/freepublish/submitPOST发布草稿(需认证)publish_idaccess_token说明access_token有效期2小时,脚本内置缓存机制,过期前5分钟自动刷新。同一AppID的access_token全局唯一,重复获取会使旧token失效。内容图片vs永久素材的区别内容图片(uploadimg)永久素材(add_material)用途正文中的<imgsrc>封面图thumb_media_id返回值微信图片URLmedia_id数量限制无特殊限制永久素材上限5000个有效期永久有效永久有效
12常见问题FAQQ:个人订阅号能用吗?可以。个人订阅号能获取AppID/AppSecret,能创建草稿。但不能自动发布(需认证),需到后台手动发布。Q:换电脑或换网络后不能用了?公网IP变了。访问/ip查看新IP,更新到微信开发者平台的IP白名单。Q:自动化任务每天执行,会重复上传图片吗?会。每次执行都会重新生成配图、上传到微信。微信永久素材上限5000个,如果长期运行建议定期到公众号后台清理旧素材。内容图片(uploadimg)不占永久素材配额。Q:能不能改成发布到多个公众号?可以。为每个公众号创建独立的config.env(如config_account_a.env),脚本中修改CONFIG_FILE路径即可。或创建多个WechatPublisher实例分别调用。Q:配图能否用AI生成?可以。WorkBuddy支持ImageGen工具生成AI配图。但需注意:①ImageGen可能受网络代理影响②AI生成的图片风格一致性较难控制③Pillow方案更稳定可控,建议作为默认方案。Q:digest(摘要)总是报错怎么办?微信对digest有严格的字节限制(约60字节=20个中文字符)。建议:①控制在15个中文字符以内②用关键词顿号分隔格式(如"AI大会、GPT-5.6、腾讯开源")③脚本已内置_truncate_bytes()自动截断。Q:如何查看自动化任务的执行结果?WorkBuddy自动化任务执行完毕后,会在对话中输出运营报告,包含今日主题、资讯列表、发布状态。你也可以到公众号后台草稿箱查看实际效果。
附录A原始需求提示词以下是提交给Wo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 室内精装修项目工程施工方案
- 2026年健康知识竞赛题库(+答案)
- 基坑支护施工方案范本
- 矿山地表塌陷应急演练脚本
- 助理物业管理师考试试题附答案课件
- 暑假漏洞修补初中数学最值问题特殊类型知识盲区专项复习教案
- 考前满分套路|初中道法暑假案例分析课件
- 2026年初中道德与法治七年级上学期真题模拟试卷
- 老年电动轮椅电池(长续航)生产项目可行性研究报告
- 2026年集成产品焊接封装设备创新成果与应用案例报告
- 物业积分管理办法细则
- 下肢深静脉瓣膜功能不全超声诊断
- 涤纶纺丝技术:工艺与质量控制
- 风力发电项目-强制性条文执行计划
- 高一人教版必修一英语单词表
- 桥梁中的物理知识
- 房屋阳台玻璃安装安全及质量保证协议书
- JBT 3341-2024 蓄电池托盘堆垛车(正式版)
- 全科医师转岗培训理论考试试题含答案
- 陕22N1 供暖工程标准图集
- SWITCH暗黑破坏神3超级金手指修改 版本号:2.7.6.90885
评论
0/150
提交评论