一个功能完整的 Telegram 机器人示例项目,使用 TypeScript 开发。本项目展示了如何构建一个具有多种功能的 Telegram 机器人,包括消息处理、图片发送、按钮交互等特性。
-
🤖 基础功能
- 自动回复用户消息
- 支持命令处理(/start, /test)
- 自动删除用户命令消息
- 支持 HTML/Markdown 消息格式
-
🖼️ 媒体功能
- 支持发送图片
- 支持图片+文字组合消息
- 支持图片+按钮组合消息
-
🔘 交互功能
- 支持内联键盘按钮
- 支持多行按钮布局
- 支持按钮 URL 跳转
-
📢 频道功能
- 支持向频道发送消息
- 支持频道消息权限检查
- 支持频道消息重试机制
- Node.js >= 14
- pnpm >= 6
- Telegram Bot Token (从 @BotFather 获取)
- Telegram 频道 ID
- 克隆项目
git clone <your-repo-url>
cd telegram-bot-demo- 安装依赖
pnpm install- 复制环境变量模板文件
cp .env.example .env- 编辑
.env文件,填入你的配置:
# Telegram Bot Token (从 @BotFather 获取)
BOT_TOKEN=your_bot_token_here
# Channel ID (频道ID,例如: -1001234567890)
CHANNEL_ID=your_channel_id_here开发模式(支持热重载):
pnpm dev生产模式:
# 构建项目
pnpm build
# 运行构建后的项目
pnpm start/start- 获取欢迎消息和功能按钮/test- 获取测试图片
// 发送文本消息
sendChannelMessage(channelId, {
text: "消息内容",
parseMode: "HTML",
buttons: [
[
{ text: "按钮1", url: "https://example.com" },
{ text: "按钮2", url: "https://example.org" }
]
]
});
// 发送图片消息
sendChannelMessage(channelId, {
photo: "图片URL",
caption: "图片说明",
parseMode: "HTML",
buttons: [
[
{ text: "查看详情", url: "https://example.com" }
]
]
});├── src/
│ └── index.ts # 主程序入口
├── .env # 环境变量配置
├── .env.example # 环境变量模板
├── .gitignore # Git 忽略文件
├── package.json # 项目配置
├── tsconfig.json # TypeScript 配置
└── README.md # 项目文档
- TypeScript
- node-telegram-bot-api
- dotenv
- ts-node-dev
- Fork 本仓库
- 创建你的特性分支 (
git checkout -b feature/AmazingFeature) - 提交你的更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启一个 Pull Request
本项目采用 MIT 协议 - 查看 LICENSE 文件了解详情