跳到主要内容

机器人

在 TelegramOS 上托管 Telegram 机器人:注册、可视化流程、Webhook、广播与速率限制详解。

平台允许你直接托管 Telegram 机器人。每个机器人都运行在平台的基础设施上,并可以配置消息流程、Webhook 处理器和广播能力。

机器人注册

  1. 在 Telegram 上通过与 @BotFather 对话创建你的机器人。你会收到一个 API 令牌。
  2. 在平台中,进入“机器人”>“注册新机器人”。
  3. 输入机器人用户名、来自 BotFather 的 API 令牌,以及可选的显示名称。
  4. 平台会向 Telegram Bot API 验证该令牌,验证成功后将机器人注册到你的工作区。
字段必填说明
用户名是机器人在 Telegram 上的 @username
API 令牌是由 BotFather 签发的令牌
显示名称否便于在工作区中识别的标签(默认为机器人的 Telegram 名称)
投递模式否polling(默认)或 webhook——见下文
流程否流程定义的 JSONB 数组

流程定义

机器人的行为以流程的形式在可视化流程编辑器中构建。一个流程从触发器开始,依次运行一串节点:动作、逻辑和流程控制。

触发器触发时机
command用户发送命令(例如 /start、/help)
message与机器人的聊天中有消息到达
callback用户按下内联键盘按钮
member_join新成员加入机器人所在的群组
schedule按计划定时
webhook收到一次 Webhook 调用
节点组节点
动作(14)send_message、send_media、edit_message、delete_message、typing、ask、buttons、http、db、ai、poll、dice、location、contact
逻辑(6)condition、switch、set_variable、delay、random、loop
流程(3)end、goto、call

投递模式:轮询或 Webhook

图 6. 轮询与 Webhook 投递、流程可用的触发器和节点、流程会话,以及机器人和群发限制。

机器人通过以下两种方式之一接收 Telegram 更新:

  • 轮询——平台通过 getUpdates 拉取更新。不需要公网 URL。这是默认方式,在 NAT 后面也能工作。
  • Webhook——平台通过 setWebhook 为你的机器人注册平台自己的端点,Telegram 将更新直接推送到该端点。你不需要提供 URL,也不需要自己的服务器。

Webhook 投递使用平台为每个机器人生成的随机 32 字节密钥进行认证,该密钥作为 secret_token 传给 Telegram。Telegram 在每次更新时通过 X-Telegram-Bot-Api-Secret-Token 请求头原样返回它,密钥不匹配的请求会被拒绝。切换到 Webhook 会生成新密钥;切回轮询则会清除密钥。

如果平台没有配置公网 Webhook URL,机器人将保持轮询模式。

流程中 HTTP 请求节点发出的请求是普通请求:只携带你配置的请求头,且不带签名,因此请用私密路径或 IP 白名单保护此类端点。在“设置 → API 密钥 → Webhook”下注册的事件 Webhook 则不同——每次投递都带有 X-TGP-Signature(HMAC-SHA256)签名;参见 API › Webhook。

速率限制

限制范围值
广播接收者数每次广播100
广播消息长度每次广播1000 个字符
发送节奏单次广播内消息之间约 0.05 秒
机器人注册每个用户每分钟 10 次

流程会话

流程不是一次性的。每个机器人为每个聊天维护一个流程会话,流程设置的变量存活于该会话中。

  • ask 会暂停流程;用户在该聊天中的回复会恢复流程。
  • 会话在 6 小时后过期。

对于需要比会话存活更久的状态,请保存在你自己的系统中,例如通过 http 节点。

路线图

以下机器人功能已列入路线图,但尚未可用:

  • 定时广播(一次性和周期性)
  • 内联模式支持
  • 通过 Telegram Stars 集成支付
  • 机器人分析面板(消息量、用户增长、响应时间)

广播安全

来自机器人的广播受以下限制约束:

  • 每次广播最多 100 个接收者
  • 每条消息最多 1000 个字符
  • 节奏:消息之间间隔约 0.05 秒发出
  • 垃圾词过滤:包含“airdrop”、“casino”或“buy now”等词语的文本会被拒绝
报告此页面的问题
机器人 | TelegramOS文档