Files
vibe-coding-cn/skills/telegram-dev/references/index.md
T

471 lines
10 KiB
Markdown
Raw Normal View History

2025-12-13 17:00:54 +08:00
# 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` - 设置 Webhook
- `deleteWebhook` - 删除 Webhook
- `getWebhookInfo` - 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 详解
### 初始化
```javascript
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` - 联系人请求
### 主题参数
```javascript
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 获取
访问 https://my.telegram.org
1. 登录账号
2. 进入 API development tools
3. 创建应用
4. 获取 API ID 和 API Hash
## 常用 Python 库
### python-telegram-bot
```bash
pip install python-telegram-bot
```
**特点:**
- 完整的 Bot API 包装
- 异步和同步支持
- 丰富的扩展
- 活跃维护
**基础示例:**
```python
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
```bash
pip install aiogram
```
**特点:**
- 纯异步
- 高性能
- FSM 状态机
- 中间件系统
### Telethon / Pyrogram
MTProto 客户端库:
```bash
pip install telethon
pip install pyrogram
```
**用途:**
- 自定义客户端
- 用户账号自动化
- 完整 Telegram 功能
## 常用 Node.js 库
### node-telegram-bot-api
```bash
npm install node-telegram-bot-api
```
### Telegraf
```bash
npm install telegraf
```
**特点:**
- 现代化
- 中间件架构
- TypeScript 支持
### grammY
```bash
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
- 简单配置
- 适合开发测试
## 安全最佳实践
1. **Token 安全**
- 不要提交到 Git
- 使用环境变量
- 定期轮换
2. **数据验证**
- 验证 initData
- 服务器端验证
- 不信任客户端
3. **权限控制**
- 检查用户权限
- 管理员验证
- 群组权限
4. **速率限制**
- 实现请求限制
- 防止滥用
- 监控异常
## 调试技巧
### Bot 调试
```python
import logging
logging.basicConfig(level=logging.DEBUG)
```
### Mini App 调试
```javascript
// 开启调试模式
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 本地测试:
```bash
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 开发解决方案!**