mcpField
T
telegram-automation

telegram-automation

github.com/sickn33生产力48.7k468 次安装今天更新
代码仓库

关于 telegram-automation

通过 Rube MCP 调用 Composio 的 Telegram 工具包,自动执行 Telegram 机器人任务。涵盖消息、聊天管理、更新和机器人命令,并强调连接检查与权限限制。

主要功能

  1. 01发送文本、照片和文件
  2. 02查看和管理聊天
  3. 03编辑、删除和转发消息
  4. 04获取更新和聊天记录
  5. 05设置机器人命令并响应回调

适用场景

  1. 01向 Telegram 聊天发送格式化消息
  2. 02附说明分享照片或文件
  3. 03查看聊天详情或近期机器人更新
  4. 04更新机器人的命令菜单

MCP 相关

通过 Rube MCP 获取最新工具架构并调用 Composio 的 Telegram 工具包。需要已启用的 Telegram 连接和获授权的机器人。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill telegram-automation

安装后在 Claude Code 中输入/telegram-automation确认已加载。

详细介绍

通过 Rube MCP 自动化 Telegram

通过 Rube MCP 使用 Composio 的 Telegram 工具包自动化 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 服务。MCP 端点仍需要提供方连接,以及已安装的 Rube 服务返回的授权流程;仅添加 URL 不会授予账户访问权限。

  1. 确认 RUBE_SEARCH_TOOLS 有响应,以验证 Rube MCP 可用
  2. 调用 RUBE_MANAGE_CONNECTIONS,并指定工具包 telegram
  3. 如果连接状态不是 ACTIVE,请打开返回的授权链接来配置 Telegram 机器人
  4. 确认连接状态为 ACTIVE 后,再运行任何工作流

核心工作流

1. 发送消息

适用场景:用户想向 Telegram 聊天发送文本消息

工具调用顺序:

  1. TELEGRAM_GET_ME - 验证机器人身份和连接 [前置条件]
  2. TELEGRAM_GET_CHAT - 获取聊天详情并验证访问权限 [可选]
  3. 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 聊天中分享图片或文件

工具调用顺序:

  1. TELEGRAM_SEND_PHOTO - 发送图片 [可选]
  2. TELEGRAM_SEND_DOCUMENT - 发送文件/文档 [可选]

关键参数:

  • chat_id:目标聊天 ID
  • photo:照片 URL 或 file_id(用于 SEND_PHOTO)
  • document:文档 URL 或 file_id(用于 SEND_DOCUMENT)
  • caption:媒体的可选说明

注意事项:

  • 照片说明的长度上限为 1024 个字符
  • 文档说明的长度上限也为 1024 个字符
  • 通过机器人 API 最多可发送 50MB 的文件
  • Telegram 会压缩照片;如需发送未压缩的图片,请使用 SEND_DOCUMENT
3. 管理聊天

适用场景:用户想获取聊天信息或管理聊天设置

工具调用顺序:

  1. TELEGRAM_GET_CHAT - 获取详细聊天信息 [必需]
  2. TELEGRAM_GET_CHAT_ADMINISTRATORS - 列出聊天管理员 [可选]
  3. TELEGRAM_GET_CHAT_MEMBERS_COUNT - 获取成员数量 [可选]
  4. TELEGRAM_EXPORT_CHAT_INVITE_LINK - 生成邀请链接 [可选]

关键参数:

  • chat_id:目标聊天 ID 或用户名

注意事项:

  • 机器人必须是管理员才能导出邀请链接
  • GET_CHAT 对私聊、群组和频道返回的字段各不相同
  • 超大型群组的成员数量可能是近似值
  • 管理员列表不包括普通成员
4. 编辑和删除消息

适用场景:用户想修改或移除之前发送的消息

工具调用顺序:

  1. TELEGRAM_EDIT_MESSAGE - 编辑已发送的消息 [可选]
  2. TELEGRAM_DELETE_MESSAGE - 删除消息 [可选]

关键参数:

  • chat_id:消息所在的聊天
  • message_id:要编辑或删除的消息 ID
  • text:新的文本内容(用于编辑)

注意事项:

  • 机器人只能编辑自己发送的消息
  • 消息只能在发送后的 48 小时内删除
  • 在群组中,拥有删除权限的机器人可以删除任何消息
  • 编辑可能会显示编辑元数据;不要承诺能够移除编辑历史或副本
5. 转发消息并获取更新

适用场景:用户想要转发消息或获取近期更新

工具调用顺序:

  1. TELEGRAM_FORWARD_MESSAGE - 将消息转发到另一个聊天 [可选]
  2. TELEGRAM_GET_UPDATES - 获取近期机器人更新/消息 [可选]
  3. TELEGRAM_GET_CHAT_HISTORY - 获取聊天消息历史记录 [可选]

关键参数:

  • from_chat_id:转发消息的来源聊天
  • chat_id:转发消息的目标聊天
  • message_id:要转发的消息
  • offset:GET_UPDATES 的更新偏移量
  • limit:要获取的更新数量

注意事项:

  • 转发的消息会显示原始发送者的署名
  • GET_UPDATES 只会返回近期更新中的有限内容
  • 访问聊天历史记录可能受机器人权限和聊天类型限制
  • 使用 offset 避免重复处理同一条更新
6. 管理机器人命令

适用场景:用户想要设置或更新机器人命令菜单

工具调用顺序:

  1. TELEGRAM_SET_MY_COMMANDS - 设置机器人的命令列表 [必需]
  2. TELEGRAM_ANSWER_CALLBACK_QUERY - 响应内联按钮点击 [可选]

关键参数:

  • commands:包含 command 和 description 的命令对象数组
  • callback_query_id:要响应的回调查询 ID

注意事项:

  • BotCommand.command 值不包含开头的“/”,且须由 1–32 个小写英文字母、数字或下划线组成;界面会显示斜杠
  • BotCommand 描述长度限制为 1–256 个字符;请核对当前工具架构
  • 请及时响应回调查询并处理过期错误;不要假定其有效期限固定且通用
  • 设置命令会替换整个命令列表

常见模式

解析聊天 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>bold</b>、<i>italic</i>、<code>code</code>
  • 使用 parse_mode: 'MarkdownV2' 实现 *bold*、_italic_、`code`
  • 在 MarkdownV2 中转义特殊字符:_ * [ ] ( ) ~ > # + - = | { } . !
  • 纯文本无需格式时省略 parse_mode

已知注意事项

机器人权限:

  • 机器人必须加入群组/频道才能进行交互
  • 删除消息、导出邀请链接和管理成员需要管理员权限
  • 机器人无法主动发起对话;用户必须先启动机器人

速率限制:

  • 单个聊天中,每秒发送的消息尽量不要超过一条
  • 群组每分钟最多约 20 条消息;免费批量广播的总体速率约为每秒 30 条消息
  • 批量操作应在调用之间设置延迟
  • 达到限制时,API 会返回 429 Too Many Requests

聊天类型:

  • 私聊:与机器人的一对一聊天
  • 群组:多人聊天(必须添加机器人)
  • 超级群组:具备管理员功能的增强型群组
  • 频道:仅用于广播(机器人必须是管理员才能发帖)

消息限制:

  • 文本消息:最多 4096 个字符
  • 媒体说明:最多 1024 个字符
  • 通过机器人 API 上传的文件:最大 50MB
  • 内联键盘按钮:每行最多 8 个

快速参考

任务工具标识关键参数
验证机器人TELEGRAM_GET_ME(无)
发送消息TELEGRAM_SEND_MESSAGEchat_id, text, parse_mode
发送照片TELEGRAM_SEND_PHOTOchat_id, photo, caption
发送文档TELEGRAM_SEND_DOCUMENTchat_id, document, caption
编辑消息TELEGRAM_EDIT_MESSAGEchat_id, message_id, text
删除消息TELEGRAM_DELETE_MESSAGEchat_id, message_id
转发消息TELEGRAM_FORWARD_MESSAGEchat_id, from_chat_id, message_id
获取聊天信息TELEGRAM_GET_CHATchat_id
获取聊天管理员TELEGRAM_GET_CHAT_ADMINISTRATORSchat_id
获取成员人数TELEGRAM_GET_CHAT_MEMBERS_COUNTchat_id
导出邀请链接TELEGRAM_EXPORT_CHAT_INVITE_LINKchat_id
获取更新TELEGRAM_GET_UPDATESoffset, limit
获取聊天记录TELEGRAM_GET_CHAT_HISTORYchat_id
设置机器人命令TELEGRAM_SET_MY_COMMANDScommands
回复回调TELEGRAM_ANSWER_CALLBACK_QUERYcallback_query_id

适用场景

当任务与概述中所述的工作流或操作明确匹配时,可使用此技能。

限制

  • 仅当任务明确符合上述范围时,才使用此技能。
  • 不要将输出视为环境专属验证、测试或专家审核的替代品。
  • 如果缺少必需的输入、权限、安全边界或成功标准,请暂停并请求澄清。

发送、转发或编辑前,请确认机器人身份、准确的目标聊天 ID,以及消息或媒体内容。读取更新并不代表获得了发送邀请、删除内容或更改机器人菜单的授权。机器人 API 访问权限不等于可访问一般聊天记录;仅使用通过发现流程实际返回的工具。保护令牌和私人转发内容,限制轮询范围,并在重试前核实状态不明的发送操作。

这些是默认速率指南,不保证实际容量。遵守 retry_after;付费群发需要单独明确的预算授权。导出主要邀请链接可能会使先前的链接失效;请先确认这一影响。请参阅 Telegram 机器人常见问题,并在发送前发现当前 Bot API 和工具限制。

评论

支持 Markdown