联创圈 logo 联创圈
热门搜索
返回联创圈官方笔记

联创圈开发日记(四):公众号自动发布系统从踩坑到跑通

距离上一篇开发日记已经过去了一周多,这段时间一直在打磨营销板块的核心功能——多渠道内容发布系统。今天重点聊聊公众号自动发布这个"大坑"。

为什么做公众号自动发布?

联创圈的营销板块支持AI生成文章,但生成之后还要手动复制到各个平台发布,效率太低。运营同学的需求很直接:"一键发到公众号、WordPress、网站,不要再让我手动复制粘贴了"。

听起来简单,实际做起来全是坑。

踩坑一:Unicode编码导致草稿乱码

第一个坑就卡了很久。调用微信公众号创建草稿接口,传过去的中文全部变成了 \uXXXX 转义序列,草稿里全是乱码。

排查后发现是 json.dumps(ensure_ascii=True) 的锅——Python默认会把中文转成ASCII转义序列。微信API收到这种编码后不会自动解码,直接原样存储了。

修复方案:

  • 使用 json.dumps(ensure_ascii=False).encode('utf-8')
  • 请求头设置 Content-Type: application/json; charset=utf-8

改完之后中文终于正常了,但这种编码问题真的很容易忽略。

踩坑二:标题被截断只有十几个字

第二个坑是标题显示不全。运营反馈"公众号同步的标题太短,标题不全",一看日志发现微信API对标题有限制。

一开始我按32个字截断,后来运营说"标题最大为64个字",又改了一遍。最终实现按字节计算长度并智能截断,保证不超限的同时尽量保留完整标题。

踩坑三:标题重复出现两次

这个是最诡异的问题——文章在网站和公众号里都出现了两次标题。排查后发现三个原因叠加:

  1. 模板渲染时自动加了标题,但文章内容本身已经包含标题
  2. 发布到公众号时,title字段和content里的标题同时发了
  3. 标题剥离逻辑不完整,只处理了h1标签,没处理h2/h3

解决方案是加了一层标题检测:_remove_title_from_content() 函数会先清理标题文本,再用正则匹配移除内容中已存在的标题标签,确保不会重复。

踩坑四:配图全是绿色

最后一个是视觉问题。运营反馈"配图为什么只是绿色",查看后发现所有文章配图都用了默认的青绿色主题。

原因是一个变量引用错误导致颜色方案没有正确切换。修复后扩展到了12套配色方案,包括深蓝、紫色、橙红、墨黑、翠绿、玫红等,每篇文章随机或按主题选择不同配色,视觉效果丰富多了。

今天还做了什么?

除了修Bug,今天还完成了文章模板的全面升级:

  • 参考微信公众号优秀排版,重新设计了5套模板主题
  • Markdown标题转换问题修复(#### 四级标题之前不渲染)
  • 封面图和统计卡片支持多样化配色

小结

一天下来最大的感触:看似简单的"一键发布"功能,背后要处理的细节远比想象中多。编码、截断、去重、配色,每一个环节出问题都会影响用户体验。

好在这些坑都填完了,明天继续推进社媒内容板块的开发。

8
评论
加载评论中...

键盘快捷键

导航

/ 聚焦搜索框
g h 返回首页
g r 资源库
g c 课程中心

操作

t 切换深色模式
b 返回顶部
f 快捷操作面板
? 显示快捷键帮助

图片浏览

上一张
下一张
Esc 关闭/退出

?Shift + / 随时打开此面板