Telegram Bot Token 怎么获取:获取、查看、验证和撤销机器人 Token
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 创建时获得
- 打开 @BotFather,点击 Start。
- 发送
/newbot,输入机器人的名称(可以是中文)。 - 输入用户名:5–32 个字符,只能使用拉丁字母、数字和下划线,并且必须以
bot结尾,例如tetris_bot或TetrisBot。 - BotFather 回复的成功消息中就包含 Token,把它复制下来,保存到安全的地方。
详细的创建步骤以及发送第一条消息的方法,可以参考 创建 Telegram 机器人教程。
查看已有机器人的 Token(/mybots)
Token 找不到了,不需要重新创建机器人,按下面的步骤查看即可:
- 在 @BotFather 中发送
/mybots; - 从列表中选择你的机器人;
- 点击 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 是否已经被
/revoke或/token替换; - 如果返回的是
404 Not Found,通常是 URL 中漏写了bot前缀,或者方法名拼错了。
在代码中检查 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 被提交到了公开仓库、发到了群里或者出现在截图中,应该立即撤销:
- 在 @BotFather 中发送
/revoke,选择对应的机器人;也可以通过/mybots→ 选择机器人 → API Token → Revoke current token 完成。 - BotFather 会生成新的 Token,旧 Token 立即失效。
- 把新 Token 更新到服务器、CI/CD 密钥、n8n 凭据等所有用到它的地方,再用
getMe验证一遍。
撤销 Token 不会删除机器人,用户名和已有的用户都会保留,只是旧 Token 再也无法调用 API。
如何安全保存 Token
- 使用环境变量或密钥管理服务,不要把 Token 硬编码在源码里。
- 把
.env文件加入.gitignore。一旦误提交到 GitHub 等公开仓库,就应视为已经泄露并立即撤销——事后删除提交记录并不能保证没人看到过。 - 不要放进客户端代码:网页前端、Mini App 和手机 App 的代码都可以被用户查看,调用 Bot API 的逻辑应该放在服务器上。
- 开发和生产分开:调试时另外创建一个测试机器人,避免影响正式用户。
- 日志中注意脱敏:Token 是请求 URL 的一部分,记录请求日志时要把它过滤掉。
# 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 Unauthorized | Token 错误、不完整,或已被撤销、替换 | 在 /mybots → API Token 中重新复制当前 Token |
404 Not Found | URL 格式不对,常见的是漏写 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 助手。这类工具通常会要求你提供两项信息:
- Bot Token:按上文从 @BotFather 获取,工具用它以机器人身份收发消息;
- chat_id:消息要发送到的聊天,可以是你自己的私聊、群组或频道。
获取 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 示例。