在这个Vibe Coding时代,竟然如此晚才搞定本地的Markdown素材直接上传微信公众号后台,实在有点汗颜。

其实没有任何技术上的障碍,只是一个认知误区。

我之前一直以为只有认证后的微信公众号,才有这个API管理素材的功能,所以连尝试都没开始。

今天偶尔看到一篇推文,才发现这个功能,无需公众号认证,唯一需要的,只是一个独立IP放入白名单。

用程序上传文件到公众号后台,需要开发接口,原本是在微信公众号后台-设置与开发-开发接口管理 里面。

image-20261013184413768

不过现在点击进去要求跳转到微信开发者平台了。

image-20261013184512962

点击过去,用微信公众号后台管理员账号登录,选择你需要管理的公众号,并点击前往公众号详情页。

在里面就三件事:

  1. 设置IP白名单。独立IP这东西,对于玩虚拟主机的人,总是有的,堪称是最简单的事儿了。
  2. 重置获得一个新的AppSecret
  3. 复制AppID

我是用Python开发上传脚本,所以后两者用一个.env文件存本地就行。之所以不放在环境变量里面,是因为我有多个公众号,需要用不同的本地环境变量文件去传入最新的环境变量。

在完成这些后,你大可将公众号开发文档(https://developers.weixin.qq.com/doc/subscription/guide/)扔给AI,让他用你的ID和密钥,开发一个脚本,将本地的Markdown编译成HTML,其中要完成CSS的内联、将图片上传素材库并更换链接等。反正这些,正常的大模型都能看懂,让他自己来就行了。

当然,还要让脚本记得上传封面图。我现在的流程是:让脚本在 Markdown 文档所在的目录下,寻找特定前缀开头的PNG图片文件。我默认使用这个格式作为封面图,当然也可以手动指定。

这里要多说明一句,微信的封面图有横图和方图两种格式,默认只能上传一张图片,通过指定裁剪区域来适配横图和方图。

我的封面图一般有两种:

  1. 来自于 Midjourney:属于适配横图的5比2的,然后自动居中裁剪出方图,至多我进入素材库再做微调。
  2. 定制的封面图:是将一张横图和一张方图拼接。具体原理之前说过,就是分别制作一张900×383的封面图和一张383×383的封面图,然后将两张封面图合并成一张1283×383的封面图。我会让脚本自动识别,如果是符合这种分辨率的,就按照这种布局传入裁剪参数。

此外,还有两个细节:

第一,原创标记、赞赏这些,都不属于素材库功能,必须要在微信公众号后台自行设置;

第二,如果要做多条,必须是一次性上传,而不能追加;当然,也可以分别每条上传,到后台引入方式手动拼接。前者时候每次程式化的多条,后者适合临时性的。

好了,想得到的细节就这些了,如果你现在看到这篇时,应该就是整个流程都跑通了。