API 优先还是浏览器自动化?从内容自动发布实践中汲取的经验教训

发布日期:2026-07-17 10:01:32   浏览量 :7
发布日期:2026-07-17 10:01:32  
7

我们构建了一条流水线,用于生成内容并将其发布到多个平台。事实证明,内容生成只是较简单的一半。发布环节才是真正的工程难点所在——也是我最耗费时间的地方。以下是我会对过去的自己提出的建议。

我总结出的规则:有应用程序接口(API)时用 API,没有时才用浏览器

并非每个平台都提供发布用的应用程序接口(API)。诱人的捷径是在所有地方都使用无头浏览器驱动。切勿如此。原因有二:

  1. 某些平台明确禁止此类行为。 X 平台的自动化规则直言不讳:“非基于应用程序接口(API)的自动化形式,例如通过脚本操作 X 网站,可能导致永久封禁。” 如果存在应用程序接口(API),通过脚本操作网站并非聪明的变通之法,而是迟早会导致封禁的行为。
  2. 浏览器自动化本质上非常脆弱。 一旦有人重命名了层叠样式表(CSS)类名,它就会立即失效。

因此,规则如下:默认使用应用程序接口(API)适配器。仅在不存在应用程序接口(API)的情况下,且仅针对账户所有者被允许执行的操作,才使用浏览器自动化。

各平台实际允许的操作

我查阅了每个平台的主要文档(而非博客文章)。以下是允许自动化操作自有账户的官方发布应用程序接口(API):

平台 认证方式 内容类型
电报(机器人应用程序接口) 静态机器人令牌 短消息 / 频道帖子
Bluesky(AT 协议) 应用密码 → 会话 JSON Web 令牌 短消息
Mastodon(长毛象) 开放授权令牌 短消息
DEV.to / Forem api-key 请求头 长篇 Markdown 格式
Ghost 管理应用程序接口密钥 → JSON Web 令牌 长篇内容
领英 开放授权(w_member_social 权限) 短/中等长度内容

通用执行规则在所有这些平台上惊人地一致:

你的内容发布到你的账户:允许。
在多个账户间发布相同内容、批量/激进操作、未经请求的通知垃圾信息:禁止。

针对不同平台调整内容,遵守速率限制,不要自动化互动行为。这就是全部要点。

浏览器自动化的陷阱(代价高昂的那些)

1. “我登录了吗?”——不要依据匿名用户也能看到的文本进行断言

我最初的检查是查找诸如“我的动态”“撰写”之类的词语。这两者对未登录的访客也是可见的。脚本在完全未认证的状态下,却愉快地报告成功。

应当对不应出现的事物之缺失进行断言:

async function isLoggedIn(page: Page): Promise<boolean> {
  const loginBtn = page.getByRole("button", { name: "Sign in", e

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据