关于 telegram-automation
通过 Composio 的 Telegram 工具包自动执行 Telegram 机器人和聊天操作,适用于消息发送、聊天管理及通过 Rube MCP 获取更新等工作流。
主要功能
- 01发送文本、照片和文档
- 02编辑、删除及转发消息
- 03获取更新和聊天记录
- 04查看聊天信息并管理机器人命令
适用场景
- 01向聊天发送机器人消息
- 02在 Telegram 中分享文件和照片
- 03管理聊天详情与机器人命令
- 04获取近期消息和更新
MCP 相关
通过 Rube MCP 访问 Composio 的 Telegram 工具包。将 https://rube.app/mcp 添加为 MCP 服务后,可使用其工具查询当前工具结构并管理 Telegram 连接。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ davepoon/ buildwithclaude --skill telegram-automation安装后在 Claude Code 中输入/telegram-automation确认已加载。
详细介绍
通过 Rube MCP 自动化 Telegram
通过 Rube MCP 使用 Composio 的 Telegram 工具包自动执行 Telegram 操作。
工具包文档:composio.dev/toolkits/telegram
前提条件
- 必须已连接 Rube MCP(可用
RUBE_SEARCH_TOOLS) - 通过
RUBE_MANAGE_CONNECTIONS建立有效的 Telegram 连接,工具包为telegram - 始终先调用
RUBE_SEARCH_TOOLS获取当前工具架构 - 需要 Telegram Bot Token(通过 @BotFather 创建)
设置
获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。无需 API 密钥——添加端点即可使用。
- 确认
RUBE_SEARCH_TOOLS有响应,以验证 Rube MCP 是否可用 - 使用工具包
telegram调用RUBE_MANAGE_CONNECTIONS - 如果连接状态不是 ACTIVE,请按照返回的授权链接配置 Telegram 机器人
- 运行任何工作流前,确认连接状态显示为 ACTIVE
核心工作流
1. 发送消息
使用场景:用户想向 Telegram 聊天发送文本消息
工具调用顺序:
TELEGRAM_GET_ME- 验证机器人身份和连接 [前置条件]TELEGRAM_GET_CHAT- 获取聊天详情并验证访问权限 [可选]TELEGRAM_SEND_MESSAGE- 发送文本消息 [必需]
关键参数:
chat_id:数字聊天 ID 或频道用户名(例如,'@channelname')text:消息文本内容parse_mode:用于格式化的 'HTML' 或 'MarkdownV2'disable_notification:静默发送,不播放通知声音reply_to_message_id:要回复的消息 ID
注意事项:
- 机器人必须是聊天/群组成员才能发送消息
- MarkdownV2 要求转义特殊字符:
_*[]()~>#+-=|{}.! - HTML 模式支持的标签有限:
<b>、<i>、<code>、<pre>、<a> - 消息长度上限为 4096 个字符;更长的内容需拆分
2. 发送照片和文档
使用场景:用户想在 Telegram 聊天中分享图片或文件
工具调用顺序:
TELEGRAM_SEND_PHOTO- 发送图片 [可选]TELEGRAM_SEND_DOCUMENT- 发送文件/文档 [可选]
关键参数:
chat_id:目标聊天 IDphoto:照片 URL 或 file_id(用于 SEND_PHOTO)document:文档 URL 或 file_id(用于 SEND_DOCUMENT)caption:媒体的可选说明文字
注意事项:
- 照片说明文字的长度上限为 1024 个字符
- 文档说明文字的长度上限同样为 1024 个字符
- 可通过机器人 API 发送最大 50MB 的文件
- Telegram 会压缩照片;如需发送未压缩图片,请使用 SEND_DOCUMENT
3. 管理聊天
使用场景:用户想获取聊天信息或管理聊天设置
工具调用顺序:
TELEGRAM_GET_CHAT- 获取详细的聊天信息 [必需]TELEGRAM_GET_CHAT_ADMINISTRATORS- 列出聊天管理员 [可选]TELEGRAM_GET_CHAT_MEMBERS_COUNT- 获取成员数量 [可选]TELEGRAM_EXPORT_CHAT_INVITE_LINK- 生成邀请链接 [可选]
关键参数:
chat_id:目标聊天 ID 或用户名
注意事项:
- 机器人必须是管理员才能导出邀请链接
- GET_CHAT 对私聊、群组和频道返回的字段各不相同
- 对于超大型群组,成员数量可能只是估算值
- 管理员列表不包含普通成员
4. 编辑和删除消息
使用场景:用户想修改或移除之前发送的消息
工具调用顺序:
TELEGRAM_EDIT_MESSAGE- 编辑已发送的消息 [可选]TELEGRAM_DELETE_MESSAGE- 删除消息 [可选]
关键参数:
chat_id:消息所在的聊天message_id:要编辑或删除的消息 IDtext:新的文本内容(用于编辑)
注意事项:
- 机器人只能编辑自己发送的消息
- 消息只能在发送后的 48 小时内删除
- 在群组中,拥有删除权限的机器人可以删除任何消息
- 编辑消息会移除其“已编辑”时间戳记录
5. 转发消息并获取更新
适用场景:用户想转发消息或获取近期更新
工具调用顺序:
TELEGRAM_FORWARD_MESSAGE- 将消息转发到另一个聊天 [可选]TELEGRAM_GET_UPDATES- 获取近期的机器人更新/消息 [可选]TELEGRAM_GET_CHAT_HISTORY- 获取聊天消息历史记录 [可选]
关键参数:
from_chat_id:转发消息的来源聊天chat_id:转发消息的目标聊天message_id:要转发的消息offset:GET_UPDATES 的更新偏移量limit:要获取的更新数量
注意事项:
- 转发的消息会显示原发送者信息
- GET_UPDATES 返回的近期更新数量有限
- 聊天历史记录的访问可能受机器人权限和聊天类型限制
- 使用 offset 避免重复处理同一条更新
6. 管理机器人命令
适用场景:用户想设置或更新机器人命令菜单
工具调用顺序:
TELEGRAM_SET_MY_COMMANDS- 设置机器人的命令列表 [必需]TELEGRAM_ANSWER_CALLBACK_QUERY- 响应内联按钮点击 [可选]
关键参数:
commands:包含command和description的命令对象数组callback_query_id:要响应的回调查询 ID
注意事项:
- 命令必须以 '/' 开头,且全部使用小写字母
- 命令描述的长度上限为 256 个字符
- 必须在 10 秒内响应回调查询,否则查询会过期
- 设置命令会替换整个命令列表
常见模式
聊天 ID 解析
根据用户名解析:
1. Use '@username' format as chat_id (for public channels/groups)
2. For private chats, numeric chat_id is required
3. Call GET_CHAT with username to retrieve numeric ID
根据 GET_UPDATES 解析:
1. Call TELEGRAM_GET_UPDATES
2. Extract chat.id from message objects
3. Use numeric chat_id in subsequent calls
消息格式
- 使用
parse_mode: 'HTML'格式化<b>粗体</b>、<i>斜体</i>、<code>代码</code> - 使用
parse_mode: 'MarkdownV2'格式化*粗体*、_斜体_、`代码` - 在 MarkdownV2 中转义特殊字符:
_ * [ ] ( ) ~ > # + - = | { } . ! - 对于不带格式的纯文本,不要设置 parse_mode
已知注意事项
机器人权限:
- 机器人必须加入群组/频道才能进行交互
- 以下操作需要管理员权限:删除消息、导出邀请链接、管理成员
- 机器人无法主动发起对话;用户必须先启动对话
速率限制:
- 向同一群组每秒最多发送 30 条消息
- 在群组中向同一用户每分钟最多发送 20 条消息
- 批量操作应在调用之间加入延迟
- 达到限制时,API 会返回 429 Too Many Requests
聊天类型:
- 私聊:与机器人的一对一聊天
- 群组:多用户聊天(必须将机器人加入群组)
- 超级群组:具有管理员功能的增强型群组
- 频道:仅用于广播(机器人必须是管理员才能发帖)
消息限制:
- 文本消息:最多 4096 个字符
- 标题:最多 1024 个字符
- 通过机器人 API 上传的文件:最大 50MB
- 内联键盘按钮:每行最多 8 个
快速参考
| 任务 | 工具 Slug | 关键参数 |
|---|---|---|
| 验证机器人 | TELEGRAM_GET_ME | (无) |
| 发送消息 | TELEGRAM_SEND_MESSAGE | chat_id, text, parse_mode |
| 发送照片 | TELEGRAM_SEND_PHOTO | chat_id, photo, caption |
| 发送文档 | TELEGRAM_SEND_DOCUMENT | chat_id, document, caption |
| 编辑消息 | TELEGRAM_EDIT_MESSAGE | chat_id, message_id, text |
| 删除消息 | TELEGRAM_DELETE_MESSAGE | chat_id, message_id |
| 转发消息 | TELEGRAM_FORWARD_MESSAGE | chat_id, from_chat_id, message_id |
| 获取聊天信息 | TELEGRAM_GET_CHAT | chat_id |
| 获取聊天管理员 | TELEGRAM_GET_CHAT_ADMINISTRATORS | chat_id |
| 获取成员数量 | TELEGRAM_GET_CHAT_MEMBERS_COUNT | chat_id |
| 导出邀请链接 | TELEGRAM_EXPORT_CHAT_INVITE_LINK | chat_id |
| 获取更新 | TELEGRAM_GET_UPDATES | offset, limit |
| 获取聊天历史记录 | TELEGRAM_GET_CHAT_HISTORY | chat_id |
| 设置机器人命令 | TELEGRAM_SET_MY_COMMANDS | commands |
| 响应回调 | TELEGRAM_ANSWER_CALLBACK_QUERY | callback_query_id |
由 Composio 提供支持
评论
支持 Markdown