node-telegram-bot-api

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

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 对话助手 🍴 复刻 1649 👀 关注 154
GitHub ↗
GitHub 星标 ★ 9216
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 开源库,MIT许可证,完全免费,无付费版本。

项目预览

node-telegram-bot-api 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类对话助手
开发团队yagop
定价模式🏷️完全免费
价格说明开源库,MIT许可证,完全免费,无付费版本。
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议MIT
主要语言TypeScript
技术栈/模型api,bot,bot-framework,chatbot,nodejs,telegram
GitHub 星标★ 9216
上线时间2015-06-28 00:00:00
代码更新2026-11-04
仓库体积4.2 MB
本站数据更新2026-11-09
维护状态活跃
收录时间2026-08-09
浏览次数5

项目介绍

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 开发库之一。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 9216

使用教程

ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。

难度:入门 约 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

上一篇:evolution-api

下一篇:geekai

同类项目推荐

ProGPT 开源

免 Key 免费调用 ChatGPT,Python 几行代码接入对话

Reverse-Engineered Python Client for ChatGPT Web Conversations

★ 87 2026-08-09
gpt-assistant-android 开源

按音量键就能和 GPT 语音聊天,还能拍照问答

【新增智能体模式】安卓端全场景GPT助手,可用音量键唤起并进行语音交流,支持联网、拍照、···

★ 908 2026-08-09
rikkahub-sillytavern-android 开源

安卓原生酒馆客户端,角色卡一键导入,聊天省 token

安卓AI聊天端:开箱即聊,无损导入酒馆卡,缓存强省用量,手机操控,专属RP模式,防空回,主···

★ 179 2026-10-21
h2ogpt 开源

本地私有部署,让 GPT 安全处理你的文档和多媒体

Private chat with local GPT with document, images, video, etc. 100% private, Apache ···

★ 11926 2026-08-09
AssistentePessoal 开源

用 Python 打造你的专属 Jarvis 语音助手

Assistente pessoal virtual desenvolvida com Python

★ 427 2026-08-09
chat_gpt_oicq 开源

在 QQ 里养一只猫娘 AI,随时陪你聊天

ChatGPT qq机器人 谁不想拥有一只可爱的猫娘呢~

★ 279 2026-08-09
Afk-Bot 开源

Minecraft 挂机防踢,自动认证,保持在线不掉线

Funcional minecraft AFK bot for servers. Anti-AFK, Auto-Auth, Microsoft/Offline acco···

★ 135 2026-08-09
QAmodel-for-Retrievalchatbot 开源

中文客服问答,多种检索模型一键切换,快速搭建基线系统。

客服机器人,Chinese Retreival chatbot(中文检索式机器人)用到的一些QA模型,基于tf-id···

★ 442 2026-08-09
maxapi 开源

用 Python 快速开发 MAX 聊天机器人,异步高效省心

Библиотека по разработке чат-ботов для мессен···

★ 231 2026-08-09