astrbbbb / docs /zh /platform /telegram.md
qa1145's picture
Upload 1245 files
8ede856 verified
# 接入 Telegram
## 支持的基本消息类型
> 版本 v4.15.0。
| 消息类型 | 是否支持接收 | 是否支持发送 | 备注 |
| --- | --- | --- | --- |
| 文本 | 是 | 是 | |
| 图片 | 是 | 是 | |
| 语音 | 是 | 是 | |
| 视频 | 是 | 是 | |
| 文件 | 是 | 是 | |
主动消息推送:支持。
## 1. 创建 Telegram Bot
首先,打开 Telegram,搜索 `BotFather`,点击 `Start`,然后发送 `/newbot`,按照提示输入你的机器人名字和用户名。
创建成功后,`BotFather` 会给你一个 `token`,请妥善保存。
如果需要在群聊中使用,需要关闭Bot的 [Privacy mode](https://core.telegram.org/bots/features#privacy-mode),对 `BotFather` 发送 `/setprivacy` 命令,然后选择bot, 再选择 `Disable`
## 2. 配置 AstrBot
1. 进入 AstrBot 的管理面板
2. 点击左边栏 `机器人`
3. 然后在右边的界面中,点击 `+ 创建机器人`
4. 选择 `telegram`
弹出的配置项填写:
- ID(id):随意填写,用于区分不同的消息平台实例。
- 启用(enable): 勾选。
- Bot Token: 你的 Telegram 机器人的 `token`
请确保你的网络环境可以访问 Telegram。你可能需要使用 `配置页->其他配置->HTTP 代理` 来设置代理。
## 流式输出
Telegram 平台支持流式输出。需要在「AI 配置」->「其他配置」中开启「流式输出」开关。
### 私聊流式输出
在私聊中,AstrBot 使用 Telegram Bot API v9.3 新增的 `sendMessageDraft` API 实现流式输出。这种方式会在私聊界面展示一个「正在输入」的草稿预览动画,体验更接近「打字机」效果,且避免了传统方案的消息闪烁、推送通知干扰和 API 编辑频率限制等问题。
### 群聊流式输出
在群聊中,由于 `sendMessageDraft` API 仅支持私聊,AstrBot 会自动回退到传统的 `send_message` + `edit_message_text` 方案。
:::warning
`sendMessageDraft` 功能需要 `python-telegram-bot>=22.6`
:::