前言¶
给 X(Twitter)做程序化发推,常见做法是抓 cookie 走 bird CLI 这类工具。这条路能跑,但 cookie 会过期,发得频繁还会撞上机器人检测和限速,稳定性全看平台脸色。下面是一套把发推搬到官方 API 上的 Skill,认证走 OAuth 1.0a 用户上下文,绕开 cookie 方案的限制。
这是什么¶
X Api 是一个发推 Skill,坐标 @clawhub_lobstergeneralintelligence/x-api,由 lobstergeneralintelligence 维护,上游托管在 ClawHub,版本 v0.1.0,许可证 MIT-0,ClawHub 安全审计结果为 Pass。它解决的问题只有一个:用官方 API 稳定发推。SkillHub 上该 Skill 的分类标注为 content-creation,显示评分 100000、下载 15075、安装 1984。
核心功能¶
只做发推,这一点要先说清楚。Skill 的官方说明里写得明确:读取时间线、搜索、监控这类操作不要走本 Skill,交给 bird CLI。所以下面列出的能力是文档中实际覆盖的范围。
1、单条发推。支持多行文本,成功返回推文 URL。
2、OAuth 1.0a 认证。使用 Consumer Key/Secret 加 Access Token/Secret 四元组,走用户上下文签名,这是发推必需的。
3、凭据配置两种方式。环境变量或本地配置文件,二者取其一即可。
这里要交代一处资料冲突:该 Skill 的线索描述提到 OAuth 2.0 Bearer Token、推文串、读取时间线、搜索、限流退避与 429/403 处理,但在 ClawHub 官方页面和 SkillHub 页面上都查不到对应内容,官方页面反而建议读取改用 bird CLI。这些能力不写进本文,需要时自行到官方地址核对。
安装与启用¶
安装走 OpenClaw 的 skills 命令,ClawHub 页面给出的是这一条。ClawHub 同时列出了 npx skills 作为 CLI 方式。Cursor、Codex CLI、Claude Code 是否有对应安装方式,官方页面没有说明,这里不写。
openclaw skills install @lobstergeneralintelligence/x-api
安装后依赖一个 npm 包,需要全局安装。这是发推脚本底层调用的客户端库。
npm install -g twitter-api-v2
配置凭据¶
发推前要先拿到官方凭据。打开 X Developer Portal 的 dashboard,新建 Project 和 App,把 App 权限设为 Read and Write(只有读权限时会返回 401),然后在 Keys and tokens 页取四样东西。
API Key (Consumer Key)
API Key Secret (Consumer Secret)
Access Token
Access Token Secret
凭据有两种放法。第一种是环境变量。
export X_API_KEY="your-api-key"
export X_API_SECRET="your-api-secret"
export X_ACCESS_TOKEN="your-access-token"
export X_ACCESS_SECRET="your-access-token-secret"
第二种是配置文件,路径固定在 ~/.clawdbot/secrets/x-api.json,字段名与上面四样对应。
{
"consumerKey": "your-api-key",
"consumerSecret": "your-api-secret",
"accessToken": "your-access-token",
"accessTokenSecret": "your-access-token-secret"
}
两种任选其一。凭证不要硬编码进脚本或提交进仓库,泄露后到 Developer Portal 重新生成 Access Token。
典型用法¶
装好依赖、配好凭据之后直接发推。命令形式是 x-post 后接正文。
x-post "Your tweet text here"
如果命令不在 PATH 里,用脚本全路径调用。
node /path/to/skills/x-api/scripts/x-post.mjs "Your tweet text here"
多行文本同样支持,用换行分隔即可。
x-post "Line one
Line two
Line three"
成功时返回推文 URL。
限额与常见报错¶
发推是计费操作,免费档每月 1,500 条,前提是 X Developer Portal 里有 credits;Basic 档每月 100 美元,限额更高。三个常见报错的处理方式如下。
1、402 Credits Depleted:到 Developer Portal 的 Dashboard 里补充 credits。
2、401 Unauthorized:先确认 App 权限设成了 Read and Write,然后重新生成 Access Token。
3、No credentials found:说明环境变量没设、配置文件也没建,按上面任一方式补上。
读取怎么办¶
需要读时间线、读提及、搜索、看某个账号的推文或读单条推文时,用 bird CLI,官方说明里给出的命令如下。
bird home # 时间线
bird mentions # 提及
bird search "query" # 搜索
bird user-tweets @handle # 某账号的推文
bird read <tweet-url> # 单条推文
这样分工的理由是成本:读操作走免费的 CLI,写操作走官方 API,两边都不浪费 credits。
适用场景与注意¶
适合需要可靠发推的场景:定时发内容、脚本批量发布、把发推接进现有自动化流程。不适合把它当读写一体的客户端用,读侧要另配 bird CLI。
注意三点。一是免费档 1,500 条/月的额度要按发布频率核算,超了会直接 402。二是凭据必须留在环境变量或 ~/.clawdbot/secrets/ 下,不要写进代码仓库。三是 App 权限要一次设成 Read and Write,只给读权限的话发推会失败。
结尾¶
这套 Skill 的价值在于把发推从 cookie 依赖里摘出来,认证和限流都由官方 API 负责。它只覆盖发推,读侧需要和 bird CLI 搭配使用。官方地址:https://www.skillhub.cn/skills/clawhub_lobstergeneralintelligence/x-api ,上游仓库:https://clawhub.ai/lobstergeneralintelligence/x-api 。