Telegram 机器人可以自动回复消息、管理群组、查询数据、连接外部服务等等,现在市面上大部分 AI agents 工具都支持 TG 频道接入,借助 TG 机器人可以方便我们远程指挥 AI 干活。

无论是个人小工具还是企业级应用,创建机器人的门槛都非常低。本文将手把手带你创建一个属于自己的私人机器人,接下来跟着我的步骤来进行操作即可,看完这篇Telegram Bot教程都能快速上手。

首先你得拥有一个 telegram 账号,如果没有,自己想办法注册。

通过 BotFather 创建机器人

BotFather 是 telegram 的“机器人注册中心”,所有机器人都必须通过它生成。

我们在搜索栏搜索 @BotFather,记住别搜错了,然后进去聊天窗口,点击 start 开启对话。

Botfather
Botfather

接下来对话框里输入 /newbot,按照提示输入机器人的显示名称和用户名,最后 BotFather 会回复一段成功消息,消息里面会携带对应的 token:

1234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw
create bot success
create bot success

最后:你可以通过下面几个命令来美化你的机器人资料,包括设置头像,简介和关于信息:

向 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 Update
from telegram.ext import Application, CommandHandler, MessageHandler, filters
 
# 替换成你自己的 Token
TOKEN = "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,然后在机器人发送消息,可以看到我们发送什么它就回复什么。

Echo Bot
Echo Bot

上述只是一个简单的示例,我们还可以使用 Telegram Bot 来实现以下功能:

  • TG 群管机器人:自动禁言、过滤广告、欢迎新人
  • 数据查询机器人:连接数据库或 API,查询天气、股价、币价
  • AI 接入:对接 ChatGPT/Claude,打造私人 AI 助手
  • Webhook 通知:服务器监控、GitHub 部署提醒、电商订单通知
  • Inline 模式:在任意聊天框 @你的机器人 查询信息

获取聊天ID

当你希望机器人主动发送消息(而不是被动回复用户)时,那就必须指定一个目标会话,这时候就需要获取聊天ID。

获取聊天ID的方式有两种,分别是:

1. 通过辅助机器人获取

打开 TG,搜索 @userinfobot 或 @getidsbot,随便发信息给他,他就会回复类似下面的信息

Your user ID: 123456789
Chat 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 开头

安全建议

  1. 绝对不要泄露 Token

如果 Token 意外暴露,立刻向 @BotFather 发送 /revoke 重新生成。

  1. 限制机器人可加入的群组

默认情况下,任何人都能把你的机器人拉进群组。如果别人拉你的机器人进群组,可以在 @BotFather 发送 /setjoingroups,选择 Disable 即可。

Disabled addGroup
Disable Joing Group

常见问题(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-botApplication 类快速搭建。

如何防止别人把我的机器人拉进群组?

在 @BotFather 中发送 /setjoingroups,选择 Disable 即可禁止机器人被邀请加入群组。

总结

创建一个 TG 机器人非常简单,只需要几分钟就搞定,通过 BotFather 获取 Token 后,你就可以使用各种编程语言的 SDK 来控制它,实现自动回复、数据查询、连接外部服务等功能。

本文为原创,未经授权,禁止任何媒体或个人自媒体转载
商业侵权必究,如需授权请联系340443366@qq.com