Telegram 机器人可以自动回复消息、管理群组、查询数据、连接外部服务等等,现在市面上大部分 AI agents 工具都支持 TG 频道接入,借助 TG 机器人可以方便我们远程指挥 AI 干活。
无论是个人小工具还是企业级应用,创建机器人的门槛都非常低。本文将手把手带你创建一个属于自己的私人机器人,接下来跟着我的步骤来进行操作即可,看完这篇Telegram Bot教程都能快速上手。
首先你得拥有一个 telegram 账号,如果没有,自己想办法注册。
通过 BotFather 创建机器人
BotFather 是 telegram 的“机器人注册中心”,所有机器人都必须通过它生成。
我们在搜索栏搜索 @BotFather,记住别搜错了,然后进去聊天窗口,点击 start 开启对话。
接下来对话框里输入 /newbot,按照提示输入机器人的显示名称和用户名,最后 BotFather 会回复一段成功消息,消息里面会携带对应的 token:
1234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw
最后:你可以通过下面几个命令来美化你的机器人资料,包括设置头像,简介和关于信息:
向 BotFather 发送以下命令:
/setuserpic:上传头像(建议 512×512 以上)/setdescription:设置简介/setabouttext:设置关于信息
使用 API Token 控制机器人
获得 Token 后,你就能通过 HTTP 请求调用 Telegram Bot API,最简单的方式是使用现成的 SDK(Python / Node.js / Go 等)。
示例:用 Python 实现一个 Echo 机器人
pip install python-telegram-bot
我们编写一个最简单的 Echo 机器人,用户发送什么消息,机器人就原样回复。
from telegram import Updatefrom telegram.ext import Application, CommandHandler, MessageHandler, filters # 替换成你自己的 TokenTOKEN = "1234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw" async def start(update: Update, context): await update.message.reply_text("你好!发送任何消息,我会原样返回。") async def echo(update: Update, context): await update.message.reply_text(update.message.text) def main(): app = Application.builder().token(TOKEN).build() app.add_handler(CommandHandler("start", start)) app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo)) app.run_polling() if __name__ == "__main__": main()
然后运行上述的脚本, python echo_bot.py,然后在机器人发送消息,可以看到我们发送什么它就回复什么。
上述只是一个简单的示例,我们还可以使用 Telegram Bot 来实现以下功能:
- TG 群管机器人:自动禁言、过滤广告、欢迎新人
- 数据查询机器人:连接数据库或 API,查询天气、股价、币价
- AI 接入:对接 ChatGPT/Claude,打造私人 AI 助手
- Webhook 通知:服务器监控、GitHub 部署提醒、电商订单通知
- Inline 模式:在任意聊天框 @你的机器人 查询信息
获取聊天ID
当你希望机器人主动发送消息(而不是被动回复用户)时,那就必须指定一个目标会话,这时候就需要获取聊天ID。
获取聊天ID的方式有两种,分别是:
1. 通过辅助机器人获取
打开 TG,搜索 @userinfobot 或 @getidsbot,随便发信息给他,他就会回复类似下面的信息
Your user ID: 123456789Chat ID: 123456789
这个方式只能获取你自己的私聊 ID。如果要获取群组或频道的 ID,请使用第二种方法。
2. 调用 Telegram API
当需要获取群组或频道的聊天 ID 时,可以用 API 方法。我们先在电报里给你新建的机器人随便发一条消息(直接输入 hello 即可),然后执行下面的 curl 命令,将 YOUR_TOKEN 替换为第一步获取的令牌:
curl https://api.telegram.org/botYOUR_TOKEN/getUpdates
返回结果是一个 JSON 对象,在 message 内部找到 chat 对象:
{ "ok": true, "result": [ { "message": { "chat": { "id": 987321, "type": "private" } } } ]}
chat 下方的 id 值就是你的聊天ID,请记录下来,下一步会用到。
若要将通知发送到电报频道而非私人会话:
1. 在电报中创建频道;
2. 将你的机器人添加为该频道管理员;
3. 在频道里发送一条测试消息;
4. 执行上面同样的 getUpdates curl 命令;
5. 响应结果中会显示频道ID,公开频道的ID均以 -100 开头。
安全建议
- 绝对不要泄露 Token
如果 Token 意外暴露,立刻向 @BotFather 发送 /revoke 重新生成。
- 限制机器人可加入的群组
默认情况下,任何人都能把你的机器人拉进群组。如果别人拉你的机器人进群组,可以在 @BotFather 发送 /setjoingroups,选择 Disable 即可。
常见问题(FAQ)
BotFather 是什么?
BotFather 是 Telegram 官方提供的机器人,所有 Telegram Bot 都必须通过它注册和管理。你可以通过搜索 @BotFather 找到它。
Telegram Bot Token 泄露了怎么办?
立即向 @BotFather 发送 /revoke 命令,撤销旧 Token 并生成新的。同时检查代码仓库是否已提交到 GitHub 等公开平台。
创建 TG 机器人需要花钱吗?
完全免费。Telegram Bot API 是免费开放的,无论你是个人还是企业都可以免费创建。
Python 开发 Telegram 机器人用什么库?
推荐使用官方社区维护的 python-telegram-bot 库(v20+ 支持异步),也可以通过 python-telegram-bot 的 Application 类快速搭建。
如何防止别人把我的机器人拉进群组?
在 @BotFather 中发送 /setjoingroups,选择 Disable 即可禁止机器人被邀请加入群组。
总结
创建一个 TG 机器人非常简单,只需要几分钟就搞定,通过 BotFather 获取 Token 后,你就可以使用各种编程语言的 SDK 来控制它,实现自动回复、数据查询、连接外部服务等功能。
评论