词元之母TOK.MOM - 平台充值汇率 1:1 即 1 人民币充值到账 1 美元,支持一个 Key 调用近 600+ 海内外模型,限时特价模型低至 1 折,欢迎上岸!
| 来源 | 内置(默认安装) |
| 路径 | skills/social-media/xurl |
| 版本 | 1.1.1 |
| 作者 | xdevplatform + openclaw + Hermes Agent |
| 许可证 | MIT |
| 平台 | linux, macos |
| 标签 | twitter, x, social-media, xurl, official-api |
xurl 是 X 开发者平台官方提供的 X API CLI 工具。它支持常用操作的快捷命令,以及对任意 v2 端点的原始 curl 风格访问。所有命令均将 JSON 输出到 stdout。xitter skill(该 skill 封装了第三方 Python CLI)。xurl 由 X 开发者平台团队维护,支持带自动刷新的 OAuth 2.0 PKCE,覆盖的 API 范围更广。~/.xurl 发送到 LLM 上下文。~/.xurl 中的密钥。--verbose / -v——它可能暴露认证头/token。xurl auth status。--bearer-token、--consumer-key、--consumer-secret、--access-token、--token-secret、--client-id、--client-secretxurl auth oauth2 进行认证——同样在 agent 会话外执行。Token 持久化保存到 ~/.xurl(YAML 格式)。每个应用拥有独立的 token。OAuth 2.0 token 自动刷新。go install 最为简便。xurl 已安装但 auth status 显示无应用或 token,用户需要手动完成认证——参见下一节。http://localhost:8080/callback--app 将 token 绑定到你的应用):/2/users/me 查询中返回 UsernameNotFound 错误或 403,请显式传入你的用户名(xurl v1.1.0+):/2/users/me 调用。常见陷阱: 如果在 xurl auth oauth2时省略了--app my-app,OAuth token 将保存到内置的default应用配置中——该配置没有 client-id 或 client-secret。即使 OAuth 流程看似成功,命令也会因认证错误而失败。如遇此情况,请重新运行xurl auth oauth2 --app my-app和xurl auth default my-app。
| 操作 | 命令 |
|---|---|
| 发帖 | xurl post "Hello world!" |
| 回复 | xurl reply POST_ID "Nice post!" |
| 引用 | xurl quote POST_ID "My take" |
| 删除帖子 | xurl delete POST_ID |
| 读取帖子 | xurl read POST_ID |
| 搜索帖子 | xurl search "QUERY" -n 10 |
| 查看自己 | xurl whoami |
| 查找用户 | xurl user @handle |
| 主页时间线 | xurl timeline -n 20 |
| 提及 | xurl mentions -n 10 |
| 点赞 / 取消点赞 | xurl like POST_ID / xurl unlike POST_ID |
| 转发 / 撤销转发 | xurl repost POST_ID / xurl unrepost POST_ID |
| 书签 / 移除书签 | xurl bookmark POST_ID / xurl unbookmark POST_ID |
| 列出书签 / 点赞 | xurl bookmarks -n 10 / xurl likes -n 10 |
| 关注 / 取消关注 | xurl follow @handle / xurl unfollow @handle |
| 正在关注 / 粉丝 | xurl following -n 20 / xurl followers -n 20 |
| 拉黑 / 取消拉黑 | xurl block @handle / xurl unblock @handle |
| 静音 / 取消静音 | xurl mute @handle / xurl unmute @handle |
| 发送私信 | xurl dm @handle "message" |
| 列出私信 | xurl dms -n 10 |
| 上传媒体 | xurl media upload path/to/file.mp4 |
| 媒体状态 | xurl media status MEDIA_ID |
| 列出应用 | xurl auth apps list |
| 移除应用 | xurl auth apps remove NAME |
| 设置默认应用 | xurl auth default APP_NAME [USERNAME] |
| 单次请求指定应用 | xurl --app NAME /2/users/me |
| 认证状态 | xurl auth status |
POST_ID 也接受完整 URL(如 https://x.com/user/status/1234567890)——xurl 会自动提取 ID。@。| Flag | 简写 | 说明 |
|---|---|---|
--app | 使用指定的已注册应用(覆盖默认值) | |
--auth | 强制指定认证类型:oauth1、oauth2 或 app | |
--username | -u | 指定使用哪个 OAuth2 账号(存在多个时) |
--verbose | -v | agent 会话中禁止使用——会泄露认证头 |
--trace | -t | 添加 X-B3-Flags: 1 追踪请求头 |
/2/tweets/search/stream/2/tweets/sample/stream/2/tweets/sample10/stream-s 强制启用流式传输。{ "data": { "id": "1234567890", "text": "Hello world!" } }{ "errors": [ { "message": "Not authorized", "code": 403 } ] }xurl auth oauth2。/2/users/me 自动获取。该处的认证失败会以认证错误的形式呈现。xurl --help 和 xurl auth status。auth status 输出。默认应用以 ▸ 标记。如果默认应用显示 oauth2: (none),但另一个应用有有效的 oauth2 用户,请告知用户运行 xurl auth default <that-app> 修复。这是最常见的配置错误 ——用户添加了自定义名称的应用但从未将其设为默认,导致 xurl 一直尝试使用空的 default 配置。xurl whoami、xurl user @handle、xurl search ... -n 3)以确认连通性。~/.xurl 内容粘贴回对话中。| 现象 | 原因 | 解决方法 |
|---|---|---|
| OAuth 流程成功后仍出现认证错误 | Token 保存到了 default 应用(无 client-id/secret)而非命名应用 | 执行 xurl auth oauth2 --app my-app,然后 xurl auth default my-app |
OAuth 期间出现 unauthorized_client | X 控制台中应用类型设置为"Native App" | 在用户认证设置中改为"Web app, automated app or bot" |
OAuth 后 /2/users/me 返回 UsernameNotFound 或 403 | X 的 /2/users/me 返回用户名不稳定 | 重新运行 xurl auth oauth2 --app my-app YOUR_USERNAME(xurl v1.1.0+)显式传入用户 名 |
| 每次请求均返回 401 | Token 已过期或默认应用错误 | 检查 xurl auth status——确认 ▸ 指向有 oauth2 token 的应用 |
client-forbidden / client-not-enrolled | X 平台注册问题 | 控制台 → 应用 → 管理 → 切换到"Pay-per-use"套餐 → 生产环境 |
CreditsDepleted | X API 余额为 $0 | 在开发者控制台 → 账单中充值(最低 $5) |
图片上传时 media processing failed | 默认分类为 amplify_video | 添加 --category tweet_image --media-type image/png |
| X 控制台中出现两个"Client Secret"值 | UI 问题——第一个实际上是 Client ID | 在"Keys and tokens"页面确认;ID 以 MTpjaQ 结尾 |
xurl auth oauth2。xurl auth default 或 --app 切换。-u / --username 选择,或通过 xurl auth default APP USER 设置默认值。~/.xurl 为 YAML 格式。绝不读取或将此文件发送到 LLM 上下文。