X API Skill: Posting Tweets on X Using the Official API

前言

给 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 。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye