本文同步自公众号最终版:https://mp.weixin.qq.com/s/q0H7N41MwZhZwaWqmwbcqw
把文章一键送进公众号后台,本质上只依赖三个核心接口:获取 access_token、上传图片素材、创建草稿。 你在公众号后台点按钮,本质上也在走同样三步,只是界面替你打包好了。
第一步是拿到 access_token。公众号开放接口用 AppID + AppSecret 换取 token,再用 token 调后续能力。
有接口意味着要有对应的服务器,这一步对普通用户来说是一个门槛,所以通常只能借助第三方平台的服务器。
第三方平台要支持把内容写进你的草稿箱,就必须让你提供 AppID 和 AppSecret,才能以你的名义换 token。等于你把钥匙交出去。
这个钥匙通常不只对应写草稿这一项能力,具体能做什么取决于账号类型、已开通的接口权限,以及第三方拿到哪些配置。选第三方时更稳的标准是开源透明、或有明确保障机制。不然就用一个可有可无的号跑流程。
比如,我的流程就是从 CLI 发起请求,请求的服务是博客服务。这两个项目都在 GitHub 开源,不存在把别人的 Token 拿去乱用的可能。
因为公众号文章里只支持加载自己服务下的图片。
草稿里的封面图、正文图片,需要先上传到公众号素材服务器,换回可引用的素材标识或 URL,再写进草稿内容。
图片会受到接口限制,比如格式、大小、文件类型(不支持 webp)等。
在本地写文章时,有时候图片是直接拿的别人的可用链接,有时是自己服务器链接,有时是用截图工具直接复制粘贴过来的。所以上传前需要处理这几种情况,然后把图片地址替换为上传后拿到的链接地址。
最后一步是创建草稿:把标题、封面、正文内容等字段组织好,通过草稿接口写入。此接口支持两种方式:文章、图文(小绿书)。
前两步相当于准备工作,把本地的 markdown 文件处理一下。第三步则需要把 markdown 转换为带有内联样式的 html 字符串。
处理内容唯一的问题就是公众号编辑器里并非支持所有 CSS 样式,如果要达到良好的效果就需要不断调试导出插件。
如果你借助第三方 web 平台来转换 markdown 样式再粘贴到公众号草稿箱里,在复制后可以打开一个别的文档编辑器粘贴一下,看看它究竟是如何保持样式的。 其实就是带有内联样式的 html。
你用的带有各种主题的编辑器,再花里胡哨也只是预设好的模板样式。
这也是为什么我会自己写 Zotepad 这个 md 编辑器。
第一,原理不复杂。看完这篇文章后,明白了核心原理,给 AI 表述清楚一点,很快也能帮你写一套。开发门槛其实只剩下你能否表述清楚,而不是你实际编码能力。
第二,样式问题。平台意味着很多人在用,所以主题设计通常比较中庸。人的审美是很挑剔的,既要简洁,又不要太朴素,既要高级又不要冗余。当然更多人不在乎格式,能写就行。但绝对多数人都会长期用一套固定格式。
所以对于一个程序员来说,开发其实不难,尤其是有了 AI 之后。我看到有人说重复造轮子是浪费时间,这句话以前确实很有道理,但放在今天,只需要打打字就有 AI 并行帮你完成,时间成本已经很低了。
一个自己看着舒服、还能持续改进的样式,一个永远不会崩溃的流程,这样才更放心。
接口调用成功后,内容会出现在公众号后台草稿箱里,处于可见、可编辑、可继续发布的状态。我通常会继续在手机上审一遍,稍稍改动,等发布后再把链接丢给 AI 让其同步到我的博客里去发布。
以上就是全部流程了。