3.2 Telegram
Telegram 是一款全球知名的即时通讯应用,以其快速、安全和丰富的机器人功能著称。Telegram 接入是 OpenClaw 最简单的渠道之一。
前置要求
- Telegram 账号
- OpenClaw 已安装并完成初始配置
创建 Telegram 机器人
1. 与 @BotFather 对话
打开 Telegram,搜索并联系 @BotFather。
⚠️ 注意:确认用户名确实是 @BotFather,谨防假冒。
2. 创建新机器人
发送 /newbot 命令,按照提示:
- 输入机器人名称(如 "My AI Assistant")
- 输入以
bot结尾的用户名(如my_ai_assistant_bot)
3. 获取 Token
创建成功后,BotFather 会返回机器人 Token,格式如:
123456789:ABCdefGHIjklMNOpqrsTUVwxyz
⚠️ 注意:
- 妥善保管 Token,不要泄露
- 如果泄露,通过 @BotFather 撤销并重新生成
4. (可选)配置机器人
@BotFather 还支持以下配置:
/setjoingroups— 控制是否可以添加到群组/setprivacy— 控制是否可以读取所有群组消息/setdescription— 设置机器人描述/setuserpic— 设置机器人头像
配置 OpenClaw
方式一:命令行添加(推荐)
openclaw channels add
按照提示选择 Telegram,输入 Bot Token 即可。
方式二:配置文件
编辑 ~/.openclaw/openclaw.json:
{
"channels": {
"telegram": {
"enabled": true,
"botToken": "YOUR_BOT_TOKEN",
"dmPolicy": "pairing"
}
}
}
方式三:环境变量
export TELEGRAM_BOT_TOKEN="YOUR_BOT_TOKEN"
配置群组设置
隐私模式说明
Telegram 机器人默认启用隐私模式,这意味着:
- 机器人只能收到被 @提及的消息
- 机器人无法读取群组中其他人的对话
关闭隐私模式
如果你需要机器人读取群组中所有消息:
- 在 @BotFather 中发送
/setprivacy - 选择你的机器人
- 选择 Disable
⚠️ 注意:关闭隐私模式后,需要将机器人从群组中移除并重新添加,更改才能生效。
配置 OpenClaw 群组规则
{
"channels": {
"telegram": {
"groups": {
"-1001234567890": {
"requireMention": false // 无需 @也响应
}
}
}
}
}
常用配置示例
{
"channels": {
"telegram": {
"groupPolicy": "allowlist",
"groupAllowFrom": ["123456789"],
"groups": {
"*": {
"requireMention": true // 默认需要 @提及
},
"-1001234567890": {
"requireMention": false // 特定群组无需 @
}
}
}
}
}
启动与测试
1. 启动网关
openclaw gateway
2. 验证状态
openclaw gateway status
openclaw channels status
3. 发送测试消息
在 Telegram 中搜索你的机器人用户名,开始对话。
4. 配对授权
默认配对模式下,你需要批准配对码:
# 查看待审批列表
openclaw pairing list telegram
# 批准配对
openclaw pairing approve telegram <配对码>
获取 ID
获取群组 ID
方法一:转发消息
- 将群组中任何消息转发给 @userinfobot 或 @getidsbot
- 机器人会返回聊天 ID(负数,如
-1001234567890)
方法二:查看日志
- 启动网关,在群组中发消息
- 运行
openclaw logs --follow查看 chat_id
获取用户 ID
方法一:
- 私信机器人,发送任何消息
- 运行
openclaw logs --follow查看 from.id
方法二:
- 使用 @userinfobot 查询
访问控制
私聊策略(dmPolicy)
| 值 | 说明 |
|---|---|
pairing | 默认。陌生用户收到配对码,需批准 |
allowlist | 仅 allowFrom 列表中的用户可对话 |
open | 允许所有人(需设置 allowFrom: ["*"]) |
disabled | 完全禁止私聊 |
群组策略(groupPolicy)
| 值 | 说明 |
|---|---|
open | 允许群组中所有人 |
allowlist | 仅 groupAllowFrom 中的用户可使用 |
disabled | 禁用群组消息 |
高级功能
自定义命令
在配置中添加自定义命令:
{
"channels": {
"telegram": {
"customCommands": [
{ "command": "backup", "description": "Git 备份" },
{ "command": "generate", "description": "创建图片" }
]
}
}
}
草稿流式传输
Telegram 支持在机器人回复时实时显示"草稿"气泡:
{
"channels": {
"telegram": {
"streamMode": "partial" // off / partial / block
}
}
}
要求:
- 在 @BotFather 中启用线程模式
- 仅限私信中的线程
内联按钮
{
"channels": {
"telegram": {
"capabilities": {
"inlineButtons": "allowlist" // off / dm / group / all / allowlist
}
}
}
}
Webhook 模式
默认使用长轮询,如需 Webhook:
{
"channels": {
"telegram": {
"webhookUrl": "https://your-domain.com/telegram-webhook",
"webhookSecret": "your-secret"
}
}
}
多账号配置
{
"channels": {
"telegram": {
"accounts": {
"main": {
"botToken": "xxx",
"name": "主机器人"
},
"secondary": {
"botToken": "yyy",
"name": "备用机器人",
"enabled": false
}
}
}
}
}
常见问题
机器人不响应群组消息
- 检查隐私模式是否关闭(@BotFather 中
/setprivacy→ Disable) - 检查是否 @了机器人
- 检查配置中是否列出了该群组
- 查看日志:
openclaw logs --follow
机器人完全看不到群组消息
- 确认机器人确实是群组成员
- 检查隐私设置
- 如果使用允许列表,确认群组已列入
命令不起作用
- 确保你的用户 ID 已通过配对或 allowFrom 授权
网络问题
如果看到 HttpError: Network request failed:
- 检查服务器是否能访问
api.telegram.org - 尝试在
/etc/hosts中强制使用 IPv4:149.154.167.220 api.telegram.org