Skip to content
← 返回专用辅助工具列表
Telegram辅助工具上手与对象

Telegram机器人接入、更新与排错 ​

识别机器人权限、令牌与更新 ​

需能阅读 JSON 中的更新、聊天和消息字段。离线消息预览用 Python 3.11+ 标准库读取虚构 update.json 并输出摘要,不需要账号或令牌;接收更新和发送消息的权限、游标与重试是后续接入时的检查项。 示例未在本轮执行。

Telegram 角色区分 ​

Telegram角色区分用户、机器人、群和频道。机器人通过Bot API接收更新或发送消息,但权限来自聊天成员关系与授权;知道chat_id不代表获得发送许可,本课程不创建机器人或发送消息。

Telegram 令牌处理 ​

Telegram令牌处理只使用环境变量占位符,不能写入URL截图、版本库或日志。旧笔记中的令牌样式全部视作不可复用历史资料;无法通过本课判断其有效性,发现真实泄露应由所有者撤销轮换。

Telegram update_id ​

Telegram的update_id标识更新,处理完成后再推进持久化游标。重复投递必须靠幂等处理避免重复业务;不能只看最大ID就假定所有前面的业务均已完成。

依据与适用范围 ​

以上依据用于解释本文列明的规则;示例未执行,不代表产品全部能力或跨平台验证。历史资料的版本、账号与界面位置需按目标环境确认。

选择接收模式与消息格式 ​

Telegram webhook 与轮询 ​

Telegram的webhook与getUpdates是不同接收模式,官方API对同时使用有约束。切换前明确积压更新如何处理,删除webhook时丢弃积压是数据决策,本课只提供样例结构,不配置远端。

Telegram 群隐私模式 ​

Telegram群隐私模式影响机器人可收到的消息范围。群管理员权限与BotFather隐私设置不是同一维度;设计命令时先确认需要哪些更新,不能假设机器人加入群就能读取所有历史消息。

Telegram 消息格式 ​

Telegram消息格式可选择纯文本或指定parse_mode。MarkdownV2有自己的转义规则,不能直接把任意用户文本拼成格式化消息;最简单的可靠模板保留纯文本和明确的长度处理。

排查权限、限速与文本偏移 ​

Telegram Forbidden ​

Telegram的Forbidden通常需要核对机器人是否被移除、被屏蔽或缺少聊天权限。重试相同请求不能修复授权;不要通过泄露令牌给第三方诊断,记录错误码时去除URL中的敏感路径。

Telegram retry_after ​

Telegram的retry_after表示错误响应要求等待的秒数,应与限速队列结合。不要固定照抄网上频率作为所有聊天类型的保证;重试还要考虑消息是否已成功和业务能否容忍重复。

Telegram 文本长度 ​

Telegram文本长度与格式实体不是简单字节数问题。接口对长度和实体偏移有明确约定,包含emoji时不能把UTF-8字节偏移直接当实体偏移;本例采用无实体纯文本避免错误偏移。

群机器人 ​

以下按历史接入步骤给出虚构响应;聊天名、ID、用户名均为示例,只用于理解字段,不表示当前可访问或已获授权。当前项目的机器人归属、群权限和接收模式需向维护者确认。通用字段可先对照虚构离线样本。

机器人 ​

  • 通过以下链接连接到 @BotFather : https://telegram.me/BotFather 。当在电报中打开与 BotFather 的聊天窗口时,按下Start按钮。
  • /newbot
  • 取名字 (example: TetrisBot or tetris_bot)
  • token BOT_TOKEN_PLACEHOLDER
  • 如果我的机器人 API Token 泄露了怎么办?
    • 不要惊慌。这是您的机器人,您可以随时撤销其机器人 Token。只需与@BotFather对话,然后输入/revoke命令。将为您的机器人发布新 Token 。
  • 我可以更改机器人的名称吗?和它的照片?
    • 是的,您可以编辑机器人的名称或为机器人上传新照片。 只需与@BotFather对话,然后输入 /mybots 命令。单击列表中的机器人,然后单击 Edit Bot

添加到群 ​

参考链接

  • 在BotFather 里面呼出 创建的机器人
  • 点进去 点击 /start
  • 点击机器人头像,Add To Group or Channel
  • 选择创建好的群
  • post访问
    • 查询chatID需要先在群里发个消息:https://api.telegram.org/botBOT_TOKEN_PLACEHOLDER/getUpdates

    • 结果

      json
          {
              "ok": true,
              "result": [
                  {
                      "update_id": 1000,
                      "message": {
                          "message_id": 12,
                          "from": {
                              "id": 10001,
                              "is_bot": false,
                              "first_name": "Example",
                              "last_name": "User",
                              "username": "example-user",
                              "language_code": "zh-hans"
                          },
                          "chat": {
                              "id": -1000000000001,
                              "title": "示例告警群",
                              "type": "supergroup"
                          },
                          "date": 1700000000,
                          "text": "@ExampleWarningBot",
                          "entities": [
                              {
                                  "offset": 0,
                                  "length": 17,
                                  "type": "mention"
                              }
                          ]
                      }
                  }
              ]
          }
    • docker 需要加入

      shell
      RUN apk --no-cache add ca-certificates \
      && update-ca-certificates

继续阅读