关于 twitter-automation
通过 Rube MCP 和 Composio 的 Twitter 工具包自动执行 Twitter/X 操作,适用于社交媒体发布与信息检索。可创建和管理帖子、搜索内容、查找用户,并管理书签与列表。
主要功能
- 01创建、查询和删除帖子
- 02搜索近期帖子及完整档案
- 03按用户名或 ID 查找用户
- 04添加和移除书签
- 05查看及管理列表
适用场景
- 01发布带媒体的帖子
- 02按关键词检索近期内容
- 03查看用户资料和帖子
- 04整理书签及关注的列表
MCP 相关
在 MCP 客户端中连接 Rube MCP,并通过 Composio 的 Twitter 工具包及已授权的 Twitter 连接执行操作。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ composiohq/ awesome-claude-skills --skill twitter-automation安装后在 Claude Code 中输入/twitter-automation确认已加载。
详细介绍
通过 Rube MCP 自动化 Twitter/X
通过 Rube MCP 使用 Composio 的 Twitter 工具包自动化 Twitter/X 操作。
工具包文档:composio.dev/toolkits/twitter
前提条件
- 必须已连接 Rube MCP(可使用 RUBE_SEARCH_TOOLS)
- 通过
RUBE_MANAGE_CONNECTIONS建立有效的 Twitter 连接,并使用工具包twitter - 务必先调用
RUBE_SEARCH_TOOLS,获取当前工具架构
设置
获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。无需 API 密钥——添加端点即可使用。
- 确认
RUBE_SEARCH_TOOLS能够响应,以验证 Rube MCP 是否可用 - 使用工具包
twitter调用RUBE_MANAGE_CONNECTIONS - 如果连接状态不是 ACTIVE,请打开返回的授权链接,完成 Twitter OAuth
- 运行任何工作流前,确认连接状态显示为 ACTIVE
核心工作流
1. 创建和管理帖子
适用场景:用户希望创建、删除或查找推文/帖子
工具调用顺序:
TWITTER_USER_LOOKUP_ME- 获取已认证用户的信息 [前置条件]TWITTER_UPLOAD_MEDIA/TWITTER_UPLOAD_LARGE_MEDIA- 上传媒体 [可选]TWITTER_CREATION_OF_A_POST- 创建新帖子 [必需]TWITTER_POST_LOOKUP_BY_POST_ID- 查找特定帖子 [可选]TWITTER_POST_DELETE_BY_POST_ID- 删除帖子 [可选]
关键参数:
text:帖子文本内容(最多 280 个加权字符)media__media_ids:附件媒体 ID 字符串数组reply__in_reply_to_tweet_id:要回复的推文 IDquote_tweet_id:要引用的推文 IDid:用于查找/删除的帖子 ID
注意事项:
- 帖子文本最多 280 个加权字符;某些字符计数可能超过 1
- 发帖操作不可幂等;超时后重试会创建重复帖子
- 媒体 ID 必须是数字字符串,不能是整数
- 视频/GIF 使用 UPLOAD_LARGE_MEDIA;图片使用 UPLOAD_MEDIA
- 务必先调用 USER_LOOKUP_ME,获取已认证用户的 ID
2. 搜索帖子
适用场景:用户希望查找符合特定条件的推文
工具调用顺序:
TWITTER_RECENT_SEARCH- 搜索近期推文(过去 7 天)[必需]TWITTER_FULL_ARCHIVE_SEARCH- 搜索完整归档(需 Academic 访问权限)[可选]TWITTER_RECENT_SEARCH_COUNTS- 获取符合查询条件的推文数量 [可选]
关键参数:
query:使用 Twitter 搜索运算符编写的搜索查询max_results:每页结果数(10-100)next_token:分页令牌start_time/end_time:ISO 8601 时间范围tweet__fields:要包含的字段,以逗号分隔expansions:要展开的相关对象
注意事项:
- RECENT_SEARCH 仅覆盖过去 7 天;若要搜索更早的推文,请使用 FULL_ARCHIVE_SEARCH
- FULL_ARCHIVE_SEARCH 需要 Academic Research 或 Enterprise 访问权限
- 查询运算符:
from:username、to:username、is:retweet、has:media、-is:retweet - 无结果时会返回
meta.result_count: 0,且不包含data字段 - 速率限制因端点和访问级别而异;请检查响应标头
3. 查找用户
适用场景:用户希望查找或查看 Twitter 用户个人资料
工具调用顺序:
TWITTER_USER_LOOKUP_ME- 获取已认证用户 [可选]TWITTER_USER_LOOKUP_BY_USERNAME- 按用户名查找 [可选]TWITTER_USER_LOOKUP_BY_ID- 按用户 ID 查找 [可选]TWITTER_USER_LOOKUP_BY_IDS- 批量查找多个用户 [可选]
关键参数:
username:不带 @ 前缀的 Twitter 用户名id:数字用户 ID 字符串ids:用于批量查找的用户 ID,以逗号分隔user__fields:要返回的字段(description、public_metrics 等)
注意事项:
- 用户名不区分大小写,但不得包含 @ 前缀
- 用户 ID 必须是数字字符串,不能是整数
- 已停用或已删除的账号会返回错误,而非空结果
- LOOKUP_BY_IDS 每次请求最多接受 100 个 ID
4. 管理书签
使用时机:用户想要保存、查看或移除已收藏的推文
工具调用顺序:
TWITTER_USER_LOOKUP_ME- 获取已认证用户 ID [前置条件]TWITTER_BOOKMARKS_BY_USER- 列出已收藏的帖子 [必需]TWITTER_ADD_POST_TO_BOOKMARKS- 收藏帖子 [可选]TWITTER_REMOVE_A_BOOKMARKED_POST- 移除书签 [可选]
关键参数:
id:用户 ID(来自 USER_LOOKUP_ME),用于列出书签tweet_id:要收藏或取消收藏的推文 IDmax_results:每页结果数pagination_token:下一页的令牌
注意事项:
- 查询书签需要已认证用户的 ID,而不是用户名
- 书签是私密的;只有已认证用户才能查看自己的书签
- 分页使用
pagination_token,而不是next_token
5. 管理列表
使用时机:用户想要查看或管理 Twitter 列表
工具调用顺序:
TWITTER_USER_LOOKUP_ME- 获取已认证用户 ID [前置条件]TWITTER_GET_A_USER_S_OWNED_LISTS- 列出拥有的列表 [可选]TWITTER_GET_A_USER_S_LIST_MEMBERSHIPS- 列出所属列表 [可选]TWITTER_GET_A_USER_S_PINNED_LISTS- 获取置顶列表 [可选]TWITTER_GET_USER_S_FOLLOWED_LISTS- 获取关注的列表 [可选]TWITTER_LIST_LOOKUP_BY_LIST_ID- 获取列表详情 [可选]
关键参数:
id:用于列出拥有、所属或关注的列表的用户 IDlist_id:用于查询特定列表的列表 IDmax_results:每页结果数(1-100)
注意事项:
- 列表 ID 和用户 ID 均为数字字符串
- 列表相关端点需要用户的数字 ID,而不是用户名
6. 与帖子互动
使用时机:用户想要点赞、取消点赞或查看已点赞的帖子
工具调用顺序:
TWITTER_USER_LOOKUP_ME- 获取已认证用户 ID [前置条件]TWITTER_RETURNS_POST_OBJECTS_LIKED_BY_THE_PROVIDED_USER_ID- 获取已点赞的帖子 [可选]TWITTER_UNLIKE_POST- 取消对帖子的点赞 [可选]
关键参数:
id:用于列出已点赞帖子的用户 IDtweet_id:要取消点赞的推文 ID
注意事项:
- 点赞和取消点赞端点需要使用 USER_LOOKUP_ME 获取的用户 ID
- 对于点赞很多的用户,分页获取已点赞帖子可能会很慢
常见模式
搜索查询语法
运算符:
from:username- 用户发布的帖子to:username- 回复给用户的帖子@username- 提及用户#hashtag- 包含话题标签"exact phrase"- 精确匹配has:media- 包含媒体has:links- 包含链接is:retweet/-is:retweet- 包含/排除转推is:reply/-is:reply- 包含/排除回复lang:en- 语言筛选
组合运算符:
- 空格表示 AND
OR表示满足任一条件- 前缀
-表示 NOT - 使用括号分组
媒体上传流程
1. Upload media with TWITTER_UPLOAD_MEDIA (images) or TWITTER_UPLOAD_LARGE_MEDIA (video/GIF)
2. Get media_id from response
3. Pass media_id as string in media__media_ids array to TWITTER_CREATION_OF_A_POST
已知注意事项
字符限制:
- 普通帖子:280 个加权字符
- 部分 Unicode 字符计数超过 1
- URL 会缩短并按固定长度计数(23 个字符)
速率限制:
- 根据访问层级(Free、Basic、Pro、Enterprise)而有很大差异
- Free 层级:限制非常严格(例如,每月 1,500 条帖子)
- 检查响应中的
x-rate-limit-remaining标头
幂等性:
- 创建帖子不具备幂等性;重试时会创建重复帖子
- 自动发布时应实现去重逻辑
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| Create post | TWITTER_CREATION_OF_A_POST | text |
| Delete post | TWITTER_POST_DELETE_BY_POST_ID | id |
| Look up post | TWITTER_POST_LOOKUP_BY_POST_ID | id |
| Recent search | TWITTER_RECENT_SEARCH | query |
| Archive search | TWITTER_FULL_ARCHIVE_SEARCH | query |
| Search counts | TWITTER_RECENT_SEARCH_COUNTS | query |
| My profile | TWITTER_USER_LOOKUP_ME | (none) |
| User by name | TWITTER_USER_LOOKUP_BY_USERNAME | username |
| User by ID | TWITTER_USER_LOOKUP_BY_ID | id |
| Users by IDs | TWITTER_USER_LOOKUP_BY_IDS | ids |
| Upload media | TWITTER_UPLOAD_MEDIA | media |
| Upload video | TWITTER_UPLOAD_LARGE_MEDIA | media |
| List bookmarks | TWITTER_BOOKMARKS_BY_USER | id |
| Add bookmark | TWITTER_ADD_POST_TO_BOOKMARKS | tweet_id |
| Remove bookmark | TWITTER_REMOVE_A_BOOKMARKED_POST | tweet_id |
| Unlike post | TWITTER_UNLIKE_POST | tweet_id |
| Liked posts | TWITTER_RETURNS_POST_OBJECTS_LIKED_BY_THE_PROVIDED_USER_ID | id |
| Owned lists | TWITTER_GET_A_USER_S_OWNED_LISTS | id |
| List memberships | TWITTER_GET_A_USER_S_LIST_MEMBERSHIPS | id |
| Pinned lists | TWITTER_GET_A_USER_S_PINNED_LISTS | id |
| Followed lists | TWITTER_GET_USER_S_FOLLOWED_LISTS | id |
| List details | TWITTER_LIST_LOOKUP_BY_LIST_ID | list_id |
Powered by Composio
评论
支持 Markdown