10 KiB
Telegram 生态开发资源索引
官方文档
Bot API
主文档: https://core.telegram.org/bots/api
描述: Telegram Bot API 完整参考文档
核心功能:
- 消息发送和接收
- 媒体文件处理
- 内联模式
- 支付集成
- Webhook 配置
- 游戏和投票
Mini Apps (Web Apps)
主文档: https://core.telegram.org/bots/webapps
完整平台: https://docs.telegram-mini-apps.com
描述: Telegram 小程序开发文档
核心功能:
- WebApp API
- 主题和 UI 控件
- 存储(Cloud/Device/Secure)
- 生物识别认证
- 位置和传感器
- 支付集成
Telegram API & MTProto
主文档: https://core.telegram.org
描述: 完整的 Telegram 协议和客户端开发
核心功能:
- MTProto 协议
- TDLib 客户端库
- 认证和加密
- 文件操作
- Secret Chats
官方 GitHub 仓库
Bot API 服务器
仓库: https://github.com/tdlib/telegram-bot-api
描述: Telegram Bot API 服务器实现
特点:
- 本地模式部署
- 支持大文件(最高 2000 MB)
- C++ 实现
- TDLib 基础
Android 客户端
仓库: https://github.com/DrKLO/Telegram
描述: 官方 Android 客户端源代码
特点:
- 完整的 Android 实现
- Material Design
- 可自定义编译
Desktop 客户端
仓库: https://github.com/telegramdesktop/tdesktop
描述: 官方桌面客户端 (Windows, macOS, Linux)
特点:
- Qt/C++ 实现
- 跨平台支持
- 完整功能
官方组织
组织页面: https://github.com/orgs/TelegramOfficial/repositories
包含:
- Beta 版本
- 支持工具
- 示例代码
API 方法分类
更新管理
getUpdates- 长轮询setWebhook- 设置 WebhookdeleteWebhook- 删除 WebhookgetWebhookInfo- Webhook 信息
消息操作
发送消息:
sendMessage- 文本消息sendPhoto- 图片sendVideo- 视频sendDocument- 文档sendAudio- 音频sendVoice- 语音sendLocation- 位置sendVenue- 地点sendContact- 联系人sendPoll- 投票sendDice- 骰子/飞镖
编辑消息:
editMessageText- 编辑文本editMessageCaption- 编辑标题editMessageMedia- 编辑媒体editMessageReplyMarkup- 编辑键盘deleteMessage- 删除消息
其他操作:
forwardMessage- 转发消息copyMessage- 复制消息sendChatAction- 发送动作(输入中...)
文件操作
getFile- 获取文件信息- 文件下载 URL:
https://api.telegram.org/file/bot<token>/<file_path> - 文件上传:支持 multipart/form-data
- 最大文件:50 MB (标准), 2000 MB (本地 Bot API)
内联模式
answerInlineQuery- 响应内联查询- 结果类型:article, photo, gif, video, audio, voice, document, location, venue, contact, game, sticker
回调查询
answerCallbackQuery- 响应按钮点击- 可显示通知或警告
支付
sendInvoice- 发送发票answerPreCheckoutQuery- 预结账answerShippingQuery- 配送查询- 支持提供商:Stripe, Yandex.Money, Telegram Stars
游戏
sendGame- 发送游戏setGameScore- 设置分数getGameHighScores- 获取排行榜
群组管理
kickChatMember/unbanChatMember- 封禁/解封restrictChatMember- 限制权限promoteChatMember- 提升管理员setChatTitle/setChatDescription- 设置信息setChatPhoto- 设置头像pinChatMessage/unpinChatMessage- 置顶消息
Mini Apps API 详解
初始化
const tg = window.Telegram.WebApp;
tg.ready();
tg.expand();
主要对象
- WebApp - 主接口
- MainButton - 主按钮
- SecondaryButton - 次要按钮
- BackButton - 返回按钮
- SettingsButton - 设置按钮
- HapticFeedback - 触觉反馈
- CloudStorage - 云存储
- BiometricManager - 生物识别
- LocationManager - 位置服务
- Accelerometer - 加速度计
- Gyroscope - 陀螺仪
- DeviceOrientation - 设备方向
事件系统
40+ 事件包括:
themeChanged- 主题改变viewportChanged- 视口改变mainButtonClicked- 主按钮点击backButtonClicked- 返回按钮点击settingsButtonClicked- 设置按钮点击invoiceClosed- 支付完成popupClosed- 弹窗关闭qrTextReceived- 扫码结果clipboardTextReceived- 剪贴板文本writeAccessRequested- 写入权限请求contactRequested- 联系人请求
主题参数
tg.themeParams = {
bg_color, // 背景色
text_color, // 文本色
hint_color, // 提示色
link_color, // 链接色
button_color, // 按钮色
button_text_color, // 按钮文本色
secondary_bg_color, // 次要背景色
header_bg_color, // 头部背景色
accent_text_color, // 强调文本色
section_bg_color, // 区块背景色
section_header_text_color, // 区块头文本色
subtitle_text_color, // 副标题色
destructive_text_color // 危险操作色
}
开发工具
@BotFather 命令
创建和管理 Bot 的核心工具:
Bot 管理:
/newbot- 创建新 Bot/mybots- 管理我的 Bots/deletebot- 删除 Bot/token- 重新生成 token
设置命令:
/setname- 设置名称/setdescription- 设置描述/setabouttext- 设置关于文本/setuserpic- 设置头像
功能配置:
/setcommands- 设置命令列表/setinline- 启用内联模式/setinlinefeedback- 内联反馈/setjoingroups- 允许加入群组/setprivacy- 隐私模式
支付和游戏:
/setgamescores- 游戏分数/setpayments- 配置支付
Mini Apps:
/newapp- 创建 Mini App/myapps- 管理 Mini Apps/setmenubutton- 设置菜单按钮
API ID 获取
- 登录账号
- 进入 API development tools
- 创建应用
- 获取 API ID 和 API Hash
常用 Python 库
python-telegram-bot
pip install python-telegram-bot
特点:
- 完整的 Bot API 包装
- 异步和同步支持
- 丰富的扩展
- 活跃维护
基础示例:
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text('你好!')
app = Application.builder().token("TOKEN").build()
app.add_handler(CommandHandler("start", start))
app.run_polling()
aiogram
pip install aiogram
特点:
- 纯异步
- 高性能
- FSM 状态机
- 中间件系统
Telethon / Pyrogram
MTProto 客户端库:
pip install telethon
pip install pyrogram
用途:
- 自定义客户端
- 用户账号自动化
- 完整 Telegram 功能
常用 Node.js 库
node-telegram-bot-api
npm install node-telegram-bot-api
Telegraf
npm install telegraf
特点:
- 现代化
- 中间件架构
- TypeScript 支持
grammY
npm install grammy
特点:
- 轻量级
- 类型安全
- 插件生态
部署选项
Webhook 托管
推荐平台:
- Heroku
- AWS Lambda
- Google Cloud Functions
- Azure Functions
- Vercel
- Railway
- Render
要求:
- HTTPS 支持
- 公网可访问
- 支持的端口:443, 80, 88, 8443
长轮询托管
推荐平台:
- VPS (Vultr, DigitalOcean, Linode)
- Raspberry Pi
- 本地服务器
优点:
- 无需 HTTPS
- 简单配置
- 适合开发测试
安全最佳实践
-
Token 安全
- 不要提交到 Git
- 使用环境变量
- 定期轮换
-
数据验证
- 验证 initData
- 服务器端验证
- 不信任客户端
-
权限控制
- 检查用户权限
- 管理员验证
- 群组权限
-
速率限制
- 实现请求限制
- 防止滥用
- 监控异常
调试技巧
Bot 调试
import logging
logging.basicConfig(level=logging.DEBUG)
Mini App 调试
// 开启调试模式
tg.showAlert(JSON.stringify(tg.initDataUnsafe, null, 2));
// 控制台日志
console.log('WebApp version:', tg.version);
console.log('Platform:', tg.platform);
console.log('Theme:', tg.colorScheme);
Webhook 测试
使用 ngrok 本地测试:
ngrok http 5000
# 将生成的 https URL 设置为 webhook
社区资源
- Telegram 开发者群组: @BotDevelopers
- Telegram API 讨论: @TelegramBots
- Mini Apps 讨论: @WebAppChat
更新日志
最新功能:
- Paid Media (付费媒体)
- Checklist Tasks (检查列表任务)
- Gift Conversion (礼物转换)
- Business Features (商业功能)
- Poll 选项增加到 12 个
- Story 发布和编辑
完整实现模板 (新增)
Telegram Bot 按钮和键盘实现指南
文件: Telegram_Bot_按钮和键盘实现模板.md
行数: 404 行
大小: 12 KB
语言: 中文
精简实用的 Telegram Bot 交互式功能实现指南:
核心内容:
- 三种按钮类型详解(Inline/Reply/Command Menu)
- python-telegram-bot 和 Telethon 双实现对比
- 完整的代码示例(即拿即用)
- 项目结构和模块化设计
- Handler 优先级和事件处理
- 生产环境部署方案
- 安全和错误处理最佳实践
特色:
- 核心代码精简,去除冗余示例
- 聚焦常用场景和实用技巧
- 完整的快速参考表
动态视图对齐 - 数据展示指南
文件: 动态视图对齐实现文档.md
行数: 407 行
大小: 12 KB
语言: 中文
专业的等宽字体数据对齐和格式化方案:
核心功能:
- 智能动态视图对齐算法(三步法)
- 自动计算列宽,无需硬编码
- 智能对齐规则(文本左,数字右)
- 完整的格式化系统:
- 交易量智能缩写(B/M/K)
- 价格智能精度(自适应小数位)
- 涨跌幅格式化(+/- 符号)
- 资金流向智能显示
应用场景:
- 排行榜、数据表格、实时行情
- 任何需要专业数据展示的 Telegram Bot
技术特点:
- O(n×m) 线性复杂度,高效实用
- 1000 行数据处理仅需 5-10ms
- 支持中文字符宽度扩展
视觉效果示例:
1. BTC $1.23B $45,000 +5.23%
2. ETH $890.5M $2,500 +3.12%
3. SOL $567.8M $101 +8.45%
这些模板提供了从基础到生产级别的完整 Telegram Bot 开发解决方案!