mcpField
T
telegram-automation

telegram-automation

github.com/composiohq生产力78.3k118 次安装14 周前更新
代码仓库

关于 telegram-automation

这是通过 Rube MCP 调用 Composio Telegram 工具包的自动化技能,适用于需要操作 Telegram 机器人和聊天的工作流。它支持消息及文件发送、聊天信息管理、消息处理和机器人命令设置。

主要功能

  1. 01发送文本、照片和文件
  2. 02编辑、删除和转发消息
  3. 03获取聊天信息及近期更新
  4. 04查询管理员和成员数量
  5. 05设置机器人命令

适用场景

  1. 01向群组或频道发送通知
  2. 02在聊天中分享照片或文档
  3. 03修改或删除机器人发送的消息
  4. 04查看聊天信息并设置命令菜单

MCP 相关

通过 Rube MCP 调用 Composio 的 Telegram 工具包。需要配置 Telegram 机器人令牌,并启用 Telegram 连接。

安装

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

$npx skills add https://github.com/composiohq/awesome-claude-skills --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 密钥——添加端点即可使用。

  1. 确认 RUBE_SEARCH_TOOLS 有响应,以验证 Rube MCP 是否可用
  2. 使用工具包 telegram 调用 RUBE_MANAGE_CONNECTIONS
  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

注意事项:

  • 命令必须以 '/' 开头,且全部使用小写字母
  • 命令描述的长度上限为 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_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

由 Composio 提供支持

评论

支持 Markdown