Telegram Bot 开发入门:从零创建你的第一个机器人

Telegram Bot 开发入门:从零创建你的第一个机器人

面向初学者的 Telegram Bot 开发教程,从 BotFather 创建到代码实现,涵盖消息处理、命令响应、内联键盘等核心功能。

什么是 Telegram Bot?

Telegram Bot(机器人)是运行在 Telegram 平台上的自动化程序,可以接收和响应用户消息、执行各种任务。Telegram 拥有业界最强大、最灵活的 Bot API,支持丰富的交互方式。

Bot 能做什么?

  • 自动回复:7×24 小时自动响应用户消息
  • 群组管理:自动审核、反垃圾、欢迎新成员
  • 内容推送:定时发送新闻、通知、提醒
  • 电商功能:商品展示、订单处理、支付集成
  • 数据查询:天气、汇率、加密货币行情
  • Web App:在 Telegram 内运行完整的 Web 应用

第一步:通过 BotFather 创建 Bot

  1. 在 Telegram 中搜索 @BotFather(认准蓝色认证标志)
  2. 发送 /newbot 命令
  3. 输入 Bot 的显示名称(如:My Test Bot)
  4. 输入 Bot 的用户名(必须以 bot 结尾,如:my_test_123_bot)
  5. BotFather 会返回一个 API Token(格式如 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11)
  6. 妥善保管这个 Token,它是控制 Bot 的唯一凭证

第二步:选择开发语言和框架

语言推荐库特点
Pythonpython-telegram-bot最流行,文档丰富,社区活跃
Node.jstelegraf / grammY异步友好,适合 Web 开发者
Gotelebot高性能,适合大规模部署
PHPtelegram-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 九度数城 了解更多。