x-api
SKILL.md
X (Twitter) API
使用 X API v2 获取和发布推文、媒体、用户信息。
前置要求
只读操作(获取推文、搜索、用户信息)
export X_BEARER_TOKEN="你的 Bearer Token"
发布推文(OAuth 1.0a)
export X_API_KEY="你的 Consumer Key"
export X_API_SECRET="你的 Consumer Secret"
export X_ACCESS_TOKEN="你的 Access Token"
export X_ACCESS_TOKEN_SECRET="你的 Access Token Secret"
可用功能
1. 获取用户最新推文
使用 get_user_tweets.py 脚本获取指定用户的最新推文。
用法:
python scripts/get_user_tweets.py <username> [max_results]
参数:
username(string): 用户名(不含 @)max_results(number, 可选): 返回推文数量,默认 5,最大 100
示例:
python scripts/get_user_tweets.py cheerselflin 5
输出格式 (2026-02-28优化):
# 1. 2026-02-27 20:33
> I'll stick to being a dog mom thanks 🐶 https://t.co/sPRYAnTGwO
视频: https://video.twimg.com/amplify_video/.../xxx.mp4
预览图: https://pbs.twimg.com/amplify_video_thumb/.../xxx.jpg
❤️793 🔄13 💬39 🔁1
格式说明:
- 标题:
# 序号. YYYY-MM-DD HH:MM - 推文内容:
> 引用块展示原文 - 媒体:
图片: https://.../视频: https://.../预览图: https://... - 统计:
❤️likes 🔄RTs 💬回复 🔁quotes - 无 Markdown 图像语法
(飞书/飞书文档不渲染) - 无代码块
2. 搜索推文
使用 search_tweets.py 脚本搜索公开推文。
用法:
python scripts/search_tweets.py "<query>" [max_results]
参数:
query(string): 搜索查询(支持 X 搜索语法,如 "from:username"、"#hashtag")max_results(number, 可选): 返回推文数量,默认 10,最大 100
示例:
python scripts/search_tweets.py "from:cheerselflin" 5
3. 获取用户信息
使用 get_user_info.py 脚本获取用户详细信息。
用法:
python scripts/get_user_info.py <username>
示例:
python scripts/get_user_info.py cheerselflin
4. 发布推文
使用 post_tweet.py 脚本发布推文。
用法:
python scripts/post_tweet.py "推文内容"
参数:
text(string): 推文内容,最多 280 字符
环境变量要求: 发布推文需要 OAuth 1.0a 认证(用户上下文):
X_API_KEY- API Key (Consumer Key)X_API_SECRET- API Secret (Consumer Secret)X_ACCESS_TOKEN- Access TokenX_ACCESS_TOKEN_SECRET- Access Token Secret
如何获取 OAuth 凭证:
- 前往 X Developer Portal
- 进入你的项目/应用 → "Keys and Tokens"
- 生成 "Access Token and Secret"(需要有 Write 权限)
- 如果应用权限变更过,需要重新生成 Access Token
示例:
# 发布纯文本推文
python scripts/post_tweet.py "Hello, X!"
# 发布带图片的推文
python scripts/post_tweet.py "Check out this photo!" --media ./photo.jpg
# 发布带多张图片的推文(最多4张)
python scripts/post_tweet.py "Multiple images" -m ./img1.jpg -m ./img2.jpg -m ./img3.jpg
# 使用已上传的 media_id
python scripts/post_tweet.py "Using media id" --media-id 1234567890
5. 上传媒体文件
使用 upload_media.py 脚本上传图片或视频(供后续发推文使用)。
用法:
python scripts/upload_media.py <文件路径>
支持的格式: JPG, PNG, GIF, WEBP, MP4, MOV
示例:
python scripts/upload_media.py ./my-image.png
返回: Media ID,可用于 post_tweet.py --media-id
技能组合 Workflow
生成视频并发布到 X
结合 generate-video skill 和 x-api skill:
# 1. 生成视频(使用豆包视频生成)
cd .claude/skills/generate-video/scripts
python text_to_video.py "可爱猫咪在阳光下打盹" -t 5 -r 1:1
# 2. 上传视频到 X
cd .claude/skills/x-api/scripts
python upload_media.py /path/to/video.mp4
# 3. 获取 Media ID 后发布推文
python post_tweet.py "🐱 AI生成的视频" --media-id <MEDIA_ID>
脚本文件
| 脚本 | 功能 | 认证方式 |
|---|---|---|
get_user_tweets.py |
获取用户推文 | Bearer Token |
search_tweets.py |
搜索推文 | Bearer Token |
get_user_info.py |
获取用户信息 | Bearer Token |
post_tweet.py |
发布推文 | OAuth 1.0a |
upload_media.py |
上传媒体文件 | OAuth 1.0a |
错误处理
只读操作错误
401- 认证失败,检查 Bearer Token403- 超出请求限制404- 用户不存在429- 请求过于频繁,需要等待重置
发布推文错误
401- OAuth 认证失败,检查 API Key/Secret 和 Access Token403- 权限不足,确保应用有 "Read and Write" 权限且 Token 已刷新429- 请求过于频繁或日推数限制
注意事项
- 请求限制: X API v2 有速率限制
- 数据保留:
search/recent仅返回最近 7 天的推文 - 认证方式:
- 只读操作:Bearer Token(应用上下文)
- 发布推文:OAuth 1.0a(用户上下文)
- 发布权限: 发布推文需要应用在 X Developer Portal 中启用 "Read and Write" 权限,且 Access Token 需要重新生成以应用新权限
参考文档
Weekly Installs
7
Repository
heterocat/heter…t-skillsFirst Seen
14 days ago
Security Audits
Installed on
opencode7
gemini-cli7
codebuddy7
github-copilot7
codex7
kimi-cli7