Telegram Bot API
🌐 中文

Telegram Bot Token 怎么获取:获取、查看、验证和撤销机器人 Token

· 7 分钟阅读

Telegram Bot Token 怎么获取?在 Telegram(电报)中打开 @BotFather,发送 /newbot 创建机器人,创建完成后 BotFather 就会把 Token 发给你;已有机器人的 Token 可以在 /mybots → 选择机器人 → API Token 中查看。下面依次介绍 Token 的格式、获取和查看方法、如何用 getMe 检查 Token 是否有效、泄露后如何撤销,以及在 n8n、AI 助手等工具中如何配合 chat_id 使用。

什么是 Telegram 机器人 Token

Token 是机器人的访问凭证,相当于“账号 + 密码”。每个机器人在创建时都会分配一个唯一的 Token,格式如下:

123456789:AAEexampleTokenReplaceWithYours

冒号前的数字是机器人的 ID,与 getMe 返回的 id 一致;冒号后是一串随机字符,也就是真正需要保密的部分。调用 Bot API 时,Token 放在 URL 中,并且前面要加上 bot:

https://api.telegram.org/bot<token>/METHOD_NAME

任何拿到 Token 的人都能以你的机器人身份读取消息、发送消息、修改 Webhook,所以必须像密码一样保管。

Token 与机器人一一对应:同一个机器人在同一时间只有一个有效的 Token,重新生成后旧的立即作废。另外,Token 只代表机器人,与你个人 Telegram 账号的登录密码、验证码毫无关系——别人拿到 Token 也无法登录你的个人账号,但可以冒充你的机器人。

Telegram Bot Token 怎么获取:用 /newbot 创建时获得

  1. 打开 @BotFather,点击 Start。
  2. 发送 /newbot,输入机器人的名称(可以是中文)。
  3. 输入用户名:5–32 个字符,只能使用拉丁字母、数字和下划线,并且必须以 bot 结尾,例如 tetris_bot 或 TetrisBot。
  4. BotFather 回复的成功消息中就包含 Token,把它复制下来,保存到安全的地方。

详细的创建步骤以及发送第一条消息的方法,可以参考 创建 Telegram 机器人教程。

查看已有机器人的 Token(/mybots)

Token 找不到了,不需要重新创建机器人,按下面的步骤查看即可:

  1. 在 @BotFather 中发送 /mybots;
  2. 从列表中选择你的机器人;
  3. 点击 API Token,当前有效的 Token 就会显示出来。
不要用 /token 命令来“找回” Token。它的作用是生成一个新的 Token,旧 Token 会随之失效,所有还在使用旧 Token 的服务器、脚本和自动化流程都会立刻开始报 401 错误。只有在 Token 泄露、确实需要更换时才使用它。

用 getMe 检查 Token 是否有效

getMe 不需要任何参数,专门用来测试 Token:

curl "https://api.telegram.org/bot123456789:AAEexampleTokenReplaceWithYours/getMe"

Token 有效时返回 "ok": true 和机器人的 User 对象(包含 id、first_name、username 等字段)。Token 无效时返回:

{"ok": false, "error_code": 401, "description": "Unauthorized"}

遇到 401 时,可以按以下顺序排查:

在代码中检查 Token 也很简单,下面的 Python 示例从环境变量读取 Token:

import os
import requests

token = os.environ["TELEGRAM_BOT_TOKEN"]
data = requests.get(f"https://api.telegram.org/bot{token}/getMe", timeout=10).json()
if data["ok"]:
    print("Token 有效,机器人:@" + data["result"]["username"])
else:
    print("Token 无效:", data["error_code"], data["description"])

不想写代码的话,打开 Bot API Tester 中的 getMe,粘贴 Token 后执行即可(工具界面为英文)。Token 只保存在你浏览器的 localStorage 中,请求直接从浏览器发往 api.telegram.org,不经过本站服务器。

Token 泄露后如何撤销

如果 Token 被提交到了公开仓库、发到了群里或者出现在截图中,应该立即撤销:

  1. 在 @BotFather 中发送 /revoke,选择对应的机器人;也可以通过 /mybots → 选择机器人 → API Token → Revoke current token 完成。
  2. BotFather 会生成新的 Token,旧 Token 立即失效。
  3. 把新 Token 更新到服务器、CI/CD 密钥、n8n 凭据等所有用到它的地方,再用 getMe 验证一遍。

撤销 Token 不会删除机器人,用户名和已有的用户都会保留,只是旧 Token 再也无法调用 API。

如何安全保存 Token

# Linux / macOS:通过环境变量传入 Token
export TELEGRAM_BOT_TOKEN="123456789:AAEexampleTokenReplaceWithYours"
python bot.py
// Node.js:从环境变量读取 Token
const token = process.env.TELEGRAM_BOT_TOKEN;
if (!token) throw new Error("请先设置环境变量 TELEGRAM_BOT_TOKEN");

与 Token 相关的常见错误

下面这些错误都和 Token 的使用方式有关,按响应中的 error_code 和 description 对照排查即可:

错误原因解决方法
401 UnauthorizedToken 错误、不完整,或已被撤销、替换在 /mybots → API Token 中重新复制当前 Token
404 Not FoundURL 格式不对,常见的是漏写 bot 前缀或方法名拼错对照 https://api.telegram.org/bot<token>/getMe 检查地址
409 Conflict(调用 getUpdates 时)该 Token 已设置 Webhook,或者另一个程序正在用同一个 Token 轮询调用 deleteWebhook,或停掉多余的程序实例
换了新 Token 后旧服务全部报错执行过 /token 或 /revoke,旧 Token 已经失效把所有配置中的旧 Token 替换为新 Token

一个实用的习惯:每次部署或修改配置后,先用 getMe 做一次“冒烟测试”,确认 Token 可用、对应的是预期的机器人用户名,再启动正式服务。这样可以避免把测试机器人的 Token 误用到生产环境。

在 n8n、AI 助手中使用 Bot Token 和 chat_id

越来越多的工具支持接入 Telegram,例如 n8n 的 Telegram 节点,以及 OpenClaw 等可以连接 Telegram 的 AI 助手。这类工具通常会要求你提供两项信息:

获取 chat_id 最快的方法是:先在 Telegram 中给机器人发一条消息,再调用 getUpdates,从 message.chat.id 中读取。群组的 ID 是负数,超级群组和频道以 -100 开头,完整步骤见 Telegram chat id 获取教程。

还有两点建议:一是为每个工具单独创建一个机器人,出了问题可以单独撤销对应的 Token;二是很多工具会为机器人设置 Webhook,这时你自己调用 getUpdates 会收到 409 Conflict,原因和处理方法见 Telegram Bot Webhook 设置教程。

常见问题

已有机器人的 Token 在哪里查看?

在 @BotFather 中发送 /mybots,选择机器人,再点击 API Token,就能看到当前的 Token。不要用 /token 来查看:它会生成一个新的 Token,旧 Token 随之失效。

Telegram Bot Token 长什么样?

格式是“数字:随机字符串”,例如 123456789:AAEexampleTokenReplaceWithYours。冒号前的数字是机器人的 ID,使用时必须连同冒号完整复制。

怎么检查 Telegram Bot Token 是否有效?

调用 https://api.telegram.org/bot<token>/getMe。返回 "ok": true 和机器人信息说明 Token 有效;返回 401 Unauthorized 说明 Token 错误或已被撤销。

Token 泄露了怎么办?

立即在 @BotFather 中发送 /revoke 并选择机器人(或在 /mybots → API Token 中撤销),旧 Token 会马上失效。然后把新 Token 更新到服务器、CI 和所有用到它的工具中。

接入 n8n 或 AI 助手时,Bot Token 和 chat id 分别从哪里获取?

Bot Token 从 @BotFather 获取;chat id 需要先在 Telegram 中给机器人发一条消息,再调用 getUpdates,从 message.chat.id 中读取。

Telegram 机器人教程:从零创建 Telegram 机器人并发送第一条消息

Telegram 机器人教程:在 @BotFather 中用 /newbot 创建机器人并获取 Token,用 getMe 验证,再通过 getUpdates 找到 chat_id,用 curl 和 Python 发出第一条消息,附常见问题排查。

Telegram Bot API 发送消息教程:sendMessage 参数、格式、按钮与错误处理

Telegram Bot API 发送消息中文教程:sendMessage 参数说明,curl、Python、JavaScript 示例,HTML 与 MarkdownV2 格式、内联按钮、群组和频道发送,以及 400、403、429 错误处理。

Telegram Bot Webhook 设置教程:用 setWebhook 配置 Webhook URL 和 secret_token

Telegram Bot API setWebhook 中文教程:Webhook URL 的 HTTPS 与端口要求、secret_token 请求头校验、用 getWebhookInfo 排错、用 deleteWebhook 切回轮询,以及 409 等常见错误的解决方法。

Telegram chat id 获取教程:查看用户、群组、频道和话题的聊天 ID

Telegram chat id 获取教程:用 getUpdates 查看私聊、群组、超级群组、频道和论坛话题的聊天 ID,讲清负数和 -100 前缀的含义,并排查 result 为空、409 Conflict 等常见问题,附 Python 示例。