一句话概述:调研确认微信公众号支持官方内容发布服务端 API,可封装成 CLI 一键发布;今日头条(头条号)无官方发布 API。本文给出公众号接入的完整路径、接口清单与落地建议。

一、背景与目标

  • 目标:为 KnowFlow 的 publish 能力评估"一键发布到内容平台"的可行性。
  • 调研对象:腾讯微信公众号、字节跳动今日头条(头条号)。
  • 结论先行:微信公众号可正式接入(官方 API),今日头条不支持(无官方发布 API)。

二、调研结论总览

维度 微信公众号 今日头条(头条号)
官方发布 API ✅ 有(草稿 + 发布) ❌ 无
CLI 可封装性 ✅ 高(标准 REST) ❌ 需逆向 / 第三方
门槛 认证主体 + IP 白名单 无官方入口
内容格式 HTML 图文 —
建议 可正式接入 不建议,或仅手动分发

三、微信公众号发布 API 清单

微信公众平台(服务号/订阅号)提供了完整的内容发布服务端接口,纯 CLI/脚本即可发布文章:

能力 接口 说明
上传图文内图片 /cgi-bin/media/uploadimg 上传正文插图
新增草稿 /cgi-bin/draft/add 图文/图片消息写入草稿箱
更新草稿 /cgi-bin/draft/update 修改草稿
发布草稿 /cgi-bin/freepublish/submit 将草稿提交发布(真正发出去)
发布状态查询 /cgi-bin/freepublish/get 查询发布任务状态
获取已发布列表 /cgi-bin/freepublish/batchget 拉取历史文章

关键限制(务必注意)

  1. 需要 access_token(通过 AppID + AppSecret 获取),并在公众平台后台配置 IP 白名单。
  2. 2025 年 7 月起,个人主体账号、未认证企业账号、不支持认证的账号已被回收发布接口权限——必须认证的服务号/订阅号才能调用。
  3. 微信认证费用:每年 300 元。
  4. 图文正文 content 字段为 HTML,需自行做 Markdown → HTML 转换。

四、踩坑与修复(核心)

1. 以为"今日头条也有开放 API",实际没有

  • 现象:developer.toutiao.com 重定向到小程序开放平台,找不到头条号图文发布接口。
  • 根因:字节跳动的开放平台主要面向小程序/小游戏/抖音开放能力,头条号后台(mp.toutiao.com)不提供第三方图文发布 API。
  • 修复:改为微信公众号方案;头条号仅做手动分发或后续评估第三方工具。
  • 可复用经验:做平台接入前先确认"官方开放 API 是否存在",避免在逆向接口上浪费时间与承担封号风险。

2. 公众号发布接口有主体资质门槛

  • 现象:未认证账号调用发布接口会失败。
  • 根因:2025 年 7 月起微信回收了个人/未认证主体的发布权限。
  • 修复:使用已认证的服务号/订阅号,并配置 IP 白名单。
  • 可复用经验:接入前先确认主体认证状态,否则开发完成后才发现权限被回收。

3. 图文正文是 HTML 而非 Markdown

  • 现象:draft/add 的 content 字段需要 HTML。
  • 根因:微信图文编辑器内部使用 HTML 存储。
  • 修复:复用已有 Markdown 处理链路,增加 Markdown → HTML 转换步骤。
  • 可复用经验:内容平台接入时,格式转换是常见且必须提前规划的一环。

五、落地建议(KnowFlow 场景)

  1. 封装 wechat-mp adapter,走 draft/add → freepublish/submit 流程,CLI 形如:

    knowflow publish article.md --platform wechat --appid xxx --secret xxx
    
  2. 复用现有 Markdown 处理链路做 Markdown → HTML 转换。

  3. 今日头条暂不支持官方 API,文档中明确标注"仅支持手动分发"。

六、结论

  • 微信公众号支持官方内容发布 API,可封装成 CLI 一键发布,是三者中最成熟的方案。
  • 今日头条(头条号)无官方发布 API,不建议逆向接入。
  • 接入公众号需:认证主体 + IP 白名单 + HTML 格式转换。
  • 社区有成熟库(如 wechat-mp、wechatpy),可加速 adapter 开发。