node-telegram-bot-api

用 Node.js 快速构建 Telegram 机器人,省心省力

node-telegram-bot-api 是一个基于 Node.js 的 Telegram Bot API 封装库,用 TypeScript 编写,为开发者提供了一套简洁、完整的接口来构建 Telegram 机器人。它解决了从零开始对接 Telegram Bot API 的繁琐问题,封装了 HTTP 请求、轮询和 Webhook 两种更新获取机制,并提供了类型安全的 API 调用。核心能力包括:支持所有官方 Bot API 方法、文件上传下载、键盘和 inline 查询、群组管理、消息编辑与删除、限流处理等。项目采用事件驱动模型,开发者可以像监听事件一样处理消息和回调,大大降低了开发门槛。同时,它支持长轮询和 Webhook 两种模式,方便在不同部署环境下使用。该项目在 GitHub 上拥有 9k+ 星标,社区活跃,文档齐全,是 Node.js 生态中最流行的 Telegram Bot 开发库之一。

开源 free 对话助手
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 9206
维护状态 较活跃
是否开源 是
定价模式 free

项目数据

分类对话助手
开发团队yagop
所属国家
官网地址
定价模式free
价格说明开源库,MIT许可证,完全免费,无付费版本。
访问状态
是否开源是
开源协议MIT
主要语言TypeScript
技术栈/模型api,bot,bot-framework,chatbot,nodejs,telegram
GitHub 星标★ 9206
30天Star增速
HF 下载量
上线时间2015-06-28 00:00:00
最近更新2026-09-19 00:00:00
维护状态较活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数3

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 5 步

环境要求

  • 现代版本的 Node.js(Bun、Deno 亦可,README 声明均支持)
  • 已安装 npm 包管理器
  • 一个可用的 Telegram Bot Token,用于设置 BOT_TOKEN 环境变量
  • 能正常访问 Telegram API 的网络环境

安装与启动步骤

  1. 1检查运行环境

    确认已安装可用的现代版 Node.js;README 声明库也支持 Bun、Deno 等运行时。

    node -v
  2. 2安装依赖

    在项目目录执行 README 给出的安装命令,把库本体装进项目。

    npm install node-telegram-bot-api
  3. 3配置机器人令牌

    把 Bot Token 写入环境变量 BOT_TOKEN,因为示例代码从 process.env.BOT_TOKEN 读取。

    export BOT_TOKEN=123456789:AAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  4. 4编写入口代码

    把 README 的 Usage 示例保存为 bot.ts,包含命令、正则、消息和按钮回调。

    cat > bot.ts << 'EOF'
    import { Bot, InlineKeyboardBuilder } from "node-telegram-bot-api";
    import { run } from "node-telegram-bot-api/node"; // managed runner: wires Ctrl-C to bot.stop()
    
    const bot = new Bot(process.env.BOT_TOKEN!);
    
    // commands, regex and update types are all middleware - registration order wins
    bot.command("start", (ctx) => ctx.reply("Hi! Send me anything."));
    bot.hears(/echo (.+)/, (ctx) => ctx.reply(ctx.match![1]!));
    
    bot.on("message", (ctx) =>
      ctx.reply("Pick one:", {
        reply_markup: new InlineKeyboardBuilder()
          .text("", "up")
          .text("", "down")
          .build(),
      }),
    );
    
    // 点按 inline 按钮会以 callback_query 回来
    bot.on("callback_query", async (ctx) => {
      await ctx.answerCallbackQuery({ text: `You tapped ${ctx.callbackQuery!.data}` });
    });
    
    await run(bot);
    EOF
  5. 5启动机器人

    用 Bun 运行入口文件;日志出现后机器人开始工作,Ctrl-C 即可停止。

    bun bot.ts

关键配置

配置项必填说明示例
BOT_TOKEN是机器人访问令牌,示例代码从环境变量读取并传给 new Bot()。123456789:AAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

如何确认成功

启动后终端无报错,在 Telegram 中给机器人发送 /start,能收到 “Hi! Send me anything.” 回复。

常见问题

Q:v1 的老代码能直接升级到 v2 吗?

A:不能。v2 是从零重写、不兼容 v1,需要按 CHANGELOG 中的 v1 -> v2 迁移指南改写代码。

Q:不想用 run() 启动可以吗?

A:可以。README 给出了核心替代方案:await bot.startPolling(),它不依赖托管运行器,在任意运行时都能跑。

Q:怎样绕过封装直接调 Telegram 接口?

A:使用 Api 类,它与线上 API 一一对应,每个 Bot API 方法对应一个方法,且只接收一个 params 对象。

Q:消息和按钮点击怎么处理?

A:都用事件方式:bot.on('message') 收普通消息,bot.on('callback_query') 收 inline 按钮点击,命令和正则也是中间件。

注意事项

  • v2 与 v1 完全不兼容,升级前务必先读 CHANGELOG 迁移指南。
  • 命令、正则和 update 类型都按中间件处理,注册顺序决定执行顺序。
  • BOT_TOKEN 请放在环境变量中,不要硬编码进源码。
  • README 声明可运行于 Bun、现代 Node.js、Deno、Cloudflare Workers 和 Vercel Functions,具体服务器端用法请参考官方文档。

核心亮点

  • 完整封装 Telegram Bot API,支持所有官方方法,无需手写 HTTP 请求
  • 内置长轮询和 Webhook 两种更新机制,部署灵活
  • TypeScript 类型定义完善,开发时能获得良好的智能提示和错误检查

不足之处

  • 文档/社区待观察
  • 对较新的 Telegram API 更新有时滞后,需等待版本发布

适用场景

  • 开发客服机器人或通知推送机器人,快速接入 Telegram
  • 构建群组管理工具,如自动审核、定时消息
  • 个人自动化助手,如 RSS 订阅提醒、任务管理

替代项目

telegraf、grammY、TeleBot

项目介绍

node-telegram-bot-api 是对话助手领域的开源项目,由 yagop 开发,2015 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(9,206)位列前 6%,在对话助手分类的 907 个项目里位列前 3%。

项目保持着较活跃的维护节奏,最近一次代码更新于 2026-09-19。开源库,MIT许可证,完全免费,无付费版本。

它主要面向的使用场景是:开发客服机器人或通知推送机器人,快速接入Telegram。同类可对比的替代方案包括 telegraf、grammY、TeleBot。

上一篇:evolution-api

下一篇:geekai

同类项目推荐

open-webui 开源

给本地模型配个漂亮聊天室,全家都能用

User-friendly AI Interface (Supports Ollama, OpenAI API, ...)

★ 152821 2026-08-09
prompts.chat 开源

海量好提示词,抄了就能让 AI 更听话

f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the commun···

★ 170999 2026-08-09
elia 开源

终端里用键盘快速聊 AI,多模型切换不打断思路

A snappy, keyboard-centric terminal user interface for interacting with large langua···

★ 2479 2026-08-09
NextChat 开源

一个界面聊遍所有主流AI模型,支持全平台部署,轻快又私密。

✨ Zero-config AI chat assistant. No API key needed — sign up and instantly chat wi···

★ 88802 2026-08-09