什么是 Telegram Bot?
Telegram Bot(机器人)是运行在 Telegram 平台上的自动化程序,可以接收和响应用户消息、执行各种任务。Telegram 拥有业界最强大、最灵活的 Bot API,支持丰富的交互方式。
Bot 能做什么?
- 自动回复:7×24 小时自动响应用户消息
- 群组管理:自动审核、反垃圾、欢迎新成员
- 内容推送:定时发送新闻、通知、提醒
- 电商功能:商品展示、订单处理、支付集成
- 数据查询:天气、汇率、加密货币行情
- Web App:在 Telegram 内运行完整的 Web 应用
第一步:通过 BotFather 创建 Bot
- 在 Telegram 中搜索 @BotFather(认准蓝色认证标志)
- 发送
/newbot命令 - 输入 Bot 的显示名称(如:My Test Bot)
- 输入 Bot 的用户名(必须以 bot 结尾,如:my_test_123_bot)
- BotFather 会返回一个 API Token(格式如 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11)
- 妥善保管这个 Token,它是控制 Bot 的唯一凭证
第二步:选择开发语言和框架
| 语言 | 推荐库 | 特点 |
|---|---|---|
| Python | python-telegram-bot | 最流行,文档丰富,社区活跃 |
| Node.js | telegraf / grammY | 异步友好,适合 Web 开发者 |
| Go | telebot | 高性能,适合大规模部署 |
| PHP | telegram-bot-sdk | 适合 PHP 开发者 |
第三步:编写代码(Python 示例)
安装依赖
pip install python-telegram-bot最简单的 Echo Bot
from telegram import Update
from telegram.ext import Application, CommandHandler, MessageHandler, filters, ContextTypes
# /start 命令处理
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text(
"Hello! I am your bot. Send me any message and I will echo it back."
)
# 消息回显
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text(update.message.text)
# 主函数
def main():
app = Application.builder().token("YOUR_BOT_TOKEN").build()
app.add_handler(CommandHandler("start", start))
app.add_handler(MessageHandler(filters.TEXT, echo))
app.run_polling()
if __name__ == "__main__":
main()添加内联键盘
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
async def menu(update: Update, context: ContextTypes.DEFAULT_TYPE):
keyboard = [
[InlineKeyboardButton("Option 1", callback_data="1")],
[InlineKeyboardButton("Option 2", callback_data="2")],
]
reply_markup = InlineKeyboardMarkup(keyboard)
await update.message.reply_text("Choose:", reply_markup=reply_markup)
async def button_callback(update: Update, context: ContextTypes.DEFAULT_TYPE):
query = update.callback_query
await query.answer()
await query.edit_message_text(f"You selected: {query.data}")第四步:部署 Bot
方式一:Polling(轮询)
最简单的方式,适合开发和小规模使用:
- Bot 主动向 Telegram 服务器轮询新消息
- 无需公网 IP 或域名
- 延迟略高(~1-2 秒)
方式二:Webhook
适合生产环境的高性能方式:
- Telegram 主动将新消息推送到你的服务器
- 需要 HTTPS 域名
- 实时性更好,延迟更低
- 推荐部署到 VPS 或云服务器
Bot 开发最佳实践
- 错误处理:捕获所有异常,避免 Bot 崩溃
- 速率限制:Telegram API 有请求频率限制,注意控制发送速度
- 状态管理:使用数据库或 Redis 存储用户会话状态
- 安全性:不要将 Token 硬编码在代码中,使用环境变量
- 用户体验:提供清晰的命令列表和帮助信息
现成的 Bot 解决方案
如果你不想从零开发,9DSC 九度数城 提供多款现成的 Telegram Bot 脚本:
- 群组管理机器人:自动审核、反垃圾、权限管理
- 自动回复机器人:关键词触发、智能对话
- 数据采集机器人:频道监控、消息抓取、数据导出
所有脚本都提供完整的部署文档和技术支持。访问 9DSC 九度数城 了解更多。
