OpenClaw Telegram集成教程:从创建Bot到配置完成的完整指南

凌晨两点,我盯着屏幕上的代码调试窗口,突然想到一个问题需要AI帮忙。打开浏览器、登录ChatGPT网站、等加载——这一套流程下来得好几分钟。那一刻我在想,要是能在Telegram上直接问我的AI助手该多好,就像和朋友聊天一样自然。
后来我发现,这个需求实现起来比想象中简单多了。OpenClaw配合Telegram Bot,半小时就能搞定。你不需要懂复杂的后端开发,也不用担心服务器配置——跟着这篇教程走,你也能拥有一个24小时在线的AI私人助手。
说实话,第一次看到Bot在Telegram里回复我的时候,那种成就感还挺爽的。今天我就把整个流程手把手教给你,包括那些我踩过的坑和常见的问题排查方法。准备好了吗?咱们开始吧。
准备工作:你需要知道的基础概念
在动手之前,咱们先搞清楚几个关键概念。这不是无聊的理论课,理解这些能让你少走很多弯路。
Telegram Bot不是普通账号。它更像一个自动回复机器人的接口,可以接收消息、发送回复,但不能主动发起对话。想象一下客服机器人,你问它问题它才会回答。
BotFather是谁? 这是Telegram官方提供的”Bot工厂”,所有Bot都从这里诞生。它本身也是一个Bot,通过和它对话就能创建、配置你自己的Bot。第一次听说的时候我还觉得挺有意思——用Bot来管理Bot。
OpenClaw在这里扮演什么角色? 简单说,它是连接Telegram和AI大模型的桥梁。Telegram负责收消息,OpenClaw接收后转给Claude或GPT,然后把AI的回复再发回Telegram。整个流程你完全不用写代码。
你需要准备这些东西:
- 一个Telegram账号(应该都有吧)
- 已安装并运行的OpenClaw(如果还没装,可以参考官方文档或我之前写的安装教程)
- AI模型的API Key(Claude、GPT、Gemini都行,有免费额度的也可以先测试)
老实讲,这些准备工作其实不复杂。OpenClaw支持多平台(Telegram、WhatsApp、微信等)和多种AI模型,配置一次之后想换模型也很方便。
第一步:通过BotFather创建你的Telegram Bot
好了,正戏开始。打开Telegram,在搜索框输入 @BotFather,认准那个带蓝色认证标志的官方账号。别点错了,山寨的可不少。
创建Bot的对话流程超简单:
- 给BotFather发送
/newbot命令 - 它会问你Bot的显示名称,随便起个好听的,比如”我的AI助手”
- 接着要设置用户名,这个有讲究:必须以
bot结尾,而且全网唯一。我第一次起名AIAssistantBot就被占用了,试了三四次才成功
如果你遇到”用户名已被占用”,试试加点数字或者你的名字缩写,比如 MyAwesomeAI2024Bot。
获取Bot Token是最关键的一步。创建成功后,BotFather会发给你一长串字符,格式大概像这样:
123456789:ABCdefGHIjklMNOpqrsTUVwxyz1234567890这个Token就像你家钥匙一样重要。我见过有人不小心把Token提交到公开的GitHub仓库,结果额度被刷爆了,损失了好几百块。建议你马上复制到密码管理器或者加密笔记里,千万别发到聊天记录或者云笔记这种地方。
可选但建议做的配置:
- 用
/setdescription给Bot设置简介,用户点开Bot时会看到 - 用
/setabouttext设置”关于”信息 - 用
/setuserpic上传个头像,看起来专业点
别忘了获取你自己的Telegram用户ID!这个待会儿配置白名单时要用。在Telegram搜索 @userinfobot,给它发个 /start,它会返回你的数字ID,看起来像 123456789 这样。把这个也记下来。
第二步:配置OpenClaw的Telegram Channel
拿到Bot Token后,接下来就是配置OpenClaw了。这一步看起来有点技术,但说白了就是编辑一个JSON文件。
找到配置文件。OpenClaw的配置文件默认在 ~/.clawdbot/config/channels.json。如果你用Docker部署,需要先确认配置文件挂载的位置。
打开这个文件,你会看到一个JSON结构。如果是第一次配置,可能是空的或者有个示例。咱们直接上完整的配置:
{
"channels": [
{
"id": "telegram-main",
"type": "telegram",
"enabled": true,
"config": {
"botToken": "YOUR_BOT_TOKEN_HERE",
"allowedUserIds": [123456789],
"enableDmPairing": false
}
}
]
}各个参数啥意思:
id:给这个Channel起个名字,方便你管理。如果你只有一个Telegram Bot,叫啥都行,建议起个有意义的type:必须是telegram,告诉OpenClaw这是Telegram渠道enabled:true表示启用,false表示临时禁用botToken:把刚才从BotFather获取的Token粘贴到这里,注意别多复制空格或换行符allowedUserIds:白名单用户ID数组,这个超重要,下一节详细说enableDmPairing:配对码模式,高级功能,新手先设为false
怎么编辑这个文件?
如果你在Linux或Mac上,用 nano 或 vim 都行:
nano ~/.clawdbot/config/channels.json如果用Docker,可以这样进入容器编辑:
docker exec -it openclaw sh
vi /root/.clawdbot/config/channels.json或者直接在宿主机上编辑挂载目录的文件。
常见错误提醒:
- JSON格式要严格:最后一个键值对后面不能有逗号
- Token粘贴时容易多复制引号或空格,仔细检查
allowedUserIds是数组,即使只有一个用户也要用方括号[]
我第一次配置的时候就是多了个逗号,OpenClaw启动失败,查日志找了半天才发现。JSON格式检查工具(比如在线的JSONLint)能帮你避免这种低级错误。
第三步:设置白名单保护你的Bot
说到白名单,这个真的太重要了。想象一下,你的Bot Token不小心泄露了,全世界任何人都能用你的Bot消耗你的AI额度。我有个朋友就这样,一个月的Claude额度三天就用完了。
为什么必须设置白名单:
- 防止陌生人滥用你的AI额度(这是真金白银啊)
- 避免敏感信息泄露(你和AI的对话可能包含工作内容)
- 控制使用成本(特别是用GPT-4这种贵的模型)
怎么配置白名单?还记得之前让你用 @userinfobot 获取的用户ID吗?就是用在这里。
单用户配置:
"allowedUserIds": [123456789]多用户配置(比如团队使用):
"allowedUserIds": [123456789, 987654321, 555555555]如何获取其他人的Telegram ID:
- 让对方在Telegram搜索
@userinfobot - 发送
/start命令 - 把返回的数字ID告诉你
- 你添加到
allowedUserIds数组里
如果你是给团队配置,建议维护一个文档记录所有授权用户的ID和名字,方便管理。有人离职了就及时从白名单移除,这是基本的安全意识。
关于Pairing模式(高级功能,新手可以跳过):
如果你把 enableDmPairing 设为 true,OpenClaw会生成一个配对码,用户首次使用时需要输入这个码才能激活。这适合多租户场景,比如你想让很多人用但又想有个激活流程。咱们这个教程先不搞这么复杂,用白名单就够了。
第四步:启动OpenClaw并测试连接
配置完成,激动人心的时刻到了。启动OpenClaw,看看你的Bot能不能正常工作。
启动OpenClaw服务:
如果是本地安装:
openclaw start
# 或者
npm start如果用Docker部署:
docker compose up -d检查服务状态:
启动后,看看日志确认Telegram Channel是否成功加载。用Docker的话:
docker compose logs openclaw -f你应该能看到类似这样的日志:
[INFO] Loading Telegram channel: telegram-main
[INFO] Telegram bot connected successfully
[INFO] Listening for messages...如果看到报错信息,别慌,记下错误内容,待会儿咱们有问题排查清单。
第一次对话测试(这是最激动的时刻):
- 在Telegram搜索你的Bot用户名(就是创建时那个以
bot结尾的) - 点击聊天窗口下方的
Start按钮 - 发送一条测试消息,比如”你好”或”Hi there”
- 如果一切正常,几秒钟后Bot会回复AI生成的内容
我第一次看到Bot回复的时候,真的有点小激动。那种感觉就像你亲手造了个机器人,然后它真的能和你聊天了。
如果Bot没有响应怎么办?先别急着重装,往下看问题排查清单,90%的问题都能快速解决。
常见问题排查清单
Bot不响应?配置不生效?别慌,咱们一步步排查。我把遇到过的问题都整理成了checklist,照着查基本都能解决。
问题1:Bot完全不响应任何消息
这是最常见的问题,可能原因有好几个。按这个顺序检查:
- OpenClaw服务是否正在运行?用
docker ps或ps aux | grep openclaw确认 - Bot Token是否正确配置?检查
channels.json里的Token,确保没有多余的空格或引号 - 你的用户ID是否在白名单中?再用
@userinfobot确认一遍ID,对比配置文件 - 配置文件JSON格式是否正确?用JSONLint在线工具检查一下
- AI模型的API Key是否有效且有额度?登录AI服务商后台查看余额
排查命令:
# 查看OpenClaw日志
docker compose logs openclaw -f
# 检查配置文件格式
cat ~/.clawdbot/config/channels.json | jq .问题2:收到”Unauthorized”或”Forbidden”错误
这个错误十有八九是白名单问题。检查:
- 你的Telegram用户ID是否在
allowedUserIds数组里 - ID是数字类型,不要加引号:
[123456789]而不是["123456789"] - 修改配置后记得重启OpenClaw服务
问题3:Bot响应很慢
如果Bot要等很久才回复,可能是这些原因:
- AI模型API响应慢(特别是高峰期)
- 网络连接问题(检查服务器到AI服务商的网络)
- 服务器资源不足(查看CPU和内存使用率)
改善方法:
- 换个响应更快的AI模型试试
- 如果用的是GPT-4,可以先试试GPT-3.5或Claude 3 Haiku
- 升级服务器配置或优化网络
问题4:配置文件修改后不生效
这个我也遇到过,改了半天配置发现根本没用。原因:忘记重启服务了。
解决方法:
docker compose restart
# 或者
systemctl restart openclaw问题5:如何查看Bot的对话历史
OpenClaw会把对话记录保存在本地。你可以:
- 查看日志文件(默认路径)
- 使用OpenClaw的Control UI(如果启用了)
- 直接查看数据库(SQLite或其他配置的数据库)
问题6:Bot Token泄露了怎么办
如果不小心把Token提交到公开仓库或者泄露了:
- 立即在BotFather中使用
/revoke命令撤销Token - 用
/token命令生成新的Token - 更新OpenClaw配置文件
- 重启服务
- 检查AI服务商的用量,看是否被滥用
进阶配置(可选)
基础功能已经完全够用了,但如果你想玩点高级的,OpenClaw还有很多可以折腾的地方。
配置欢迎消息和命令菜单:
在BotFather中,你可以用 /setcommands 给Bot设置命令菜单,比如:
start - 开始对话
help - 查看帮助
clear - 清空对话历史用户输入 / 时就能看到这些命令提示。
启用DM配对模式:
如果你想让多个人使用但又不想手动管理白名单,可以试试配对码模式:
"enableDmPairing": trueOpenClaw会生成一个配对码,用户首次使用时输入配对码即可激活。这个适合做成服务给其他人用。
配置不同用户使用不同AI模型:
OpenClaw支持按用户分配不同的AI模型。比如管理员用GPT-4,普通用户用GPT-3.5。具体配置可以参考OpenClaw官方文档的Multi-Model部分。
集成OpenClaw Skills:
Skills是OpenClaw的杀手级功能,可以让AI助手执行实际操作,比如:
- 文件管理(创建、读取、编辑文件)
- Shell命令执行
- 网页搜索
- 代码编写和调试
不过Skills功能需要谨慎开启,尤其是Shell命令执行,安全风险比较大。
设置对话记忆和个性化响应:
OpenClaw会自动保存对话历史,你可以配置记忆长度、个性化提示词等,让AI助手更符合你的使用习惯。
这些进阶功能我就不展开了,感兴趣可以去OpenClaw官方文档深入研究。
结论
说了这么多,回头看整个流程其实并不复杂。从BotFather创建Bot、获取Token,到配置OpenClaw、设置白名单,再到启动测试,整个过程半小时足够了。
回顾一下最容易出错的地方:
- Bot Token一定要妥善保管,别提交到公开仓库
- 白名单配置是安全的关键,别图省事跳过这一步
- JSON格式要严格,多一个逗号都会导致配置失败
- 改了配置记得重启服务,不然不生效
如果你按着这篇教程走下来,现在应该已经有一个能正常工作的Telegram AI助手了。打开Telegram随时问它问题,不用再打开浏览器、登录网站、等加载,体验真的舒服太多。
接下来你可以做什么:
- 试试不同的AI模型,看看哪个更适合你的需求
- 探索OpenClaw的Skills功能,让AI助手能执行实际操作
- 如果觉得好用,也可以给团队成员配置上
OpenClaw不只支持Telegram,还能接入WhatsApp、企业微信等平台。掌握了这套配置方法,其他平台也是触类旁通。
遇到问题别慌,回头看看问题排查清单,或者去OpenClaw社区问问。折腾这些工具的乐趣不就在于此嘛——每次解决一个问题,都能学到新东西。
现在,去和你的AI助手聊聊天吧!
OpenClaw Telegram Bot完整配置流程
从零开始搭建Telegram AI助手,包含Bot创建、OpenClaw配置、安全设置和测试验证
⏱️ 预计耗时: 30 分钟
- 1
步骤1: 通过BotFather创建Telegram Bot
创建步骤:
1. 在Telegram搜索 @BotFather(认准蓝色认证标志)
2. 发送 /newbot 命令开始创建
3. 输入Bot显示名称(可随意命名)
4. 设置用户名(必须以bot结尾,全网唯一)
获取关键信息:
• Bot Token:格式类似 123456789:ABCdefGHIjklMNOpqrsTUVwxyz1234567890
• 立即保存到密码管理器,切勿泄露
• 搜索 @userinfobot 获取你的用户ID(白名单配置需要)
可选配置(建议完成):
• /setdescription - 设置Bot简介
• /setabouttext - 设置关于信息
• /setuserpic - 上传头像 - 2
步骤2: 配置OpenClaw的channels.json文件
找到配置文件:
• 默认路径:~/.clawdbot/config/channels.json
• Docker部署需确认挂载目录
编辑配置(完整示例):
{
"channels": [
{
"id": "telegram-main",
"type": "telegram",
"enabled": true,
"config": {
"botToken": "YOUR_BOT_TOKEN_HERE",
"allowedUserIds": [123456789],
"enableDmPairing": false
}
}
]
}
参数说明:
• id:Channel标识符(自定义)
• type:必须为 telegram
• botToken:粘贴从BotFather获取的Token
• allowedUserIds:白名单用户ID数组(数字类型,不加引号)
• enableDmPairing:配对码模式,新手设为 false
常见错误:
• JSON格式错误(多余逗号、缺少括号)
• Token包含多余空格或换行符
• allowedUserIds 用了字符串而非数字 - 3
步骤3: 配置白名单保护
获取用户ID:
1. 在Telegram搜索 @userinfobot
2. 发送 /start 命令
3. 记录返回的数字ID(如 123456789)
单用户配置:
"allowedUserIds": [123456789]
多用户配置(团队使用):
"allowedUserIds": [123456789, 987654321, 555555555]
安全要点:
• 只添加可信用户,避免API额度被滥用
• 定期审查白名单,移除离职人员
• Token泄露可能导致数百元损失
• 建议维护文档记录用户ID与姓名对应关系 - 4
步骤4: 启动服务并测试
启动OpenClaw:
本地安装:
openclaw start
# 或
npm start
Docker部署:
docker compose up -d
检查服务状态:
docker compose logs openclaw -f
预期日志输出:
[INFO] Loading Telegram channel: telegram-main
[INFO] Telegram bot connected successfully
[INFO] Listening for messages...
测试对话:
1. 在Telegram搜索你的Bot用户名
2. 点击 Start 按钮
3. 发送测试消息(如"你好")
4. 等待AI回复(通常几秒钟)
配置修改后必须重启:
docker compose restart - 5
步骤5: 常见问题排查
Bot不响应检查清单:
• OpenClaw服务是否运行(docker ps 或 ps aux | grep openclaw)
• Bot Token配置是否正确(无多余空格)
• 用户ID是否在白名单中
• JSON格式是否正确(用JSONLint验证)
• AI API Key是否有效且有额度
Unauthorized错误:
• 确认用户ID在 allowedUserIds 数组中
• ID必须是数字类型:[123456789] 不是 ["123456789"]
• 修改后重启服务
响应慢的改善方法:
• 换用响应更快的AI模型(如Claude 3 Haiku)
• 检查网络连接质量
• 升级服务器配置
Token泄露应急处理:
1. 在BotFather中执行 /revoke 撤销Token
2. 执行 /token 生成新Token
3. 更新OpenClaw配置文件
4. 重启服务
5. 检查AI服务商用量统计
常见问题
为什么Bot不响应我的消息?
1. 用户ID不在白名单:用 @userinfobot 确认你的Telegram ID,检查是否在 allowedUserIds 数组中
2. Bot Token配置错误:检查 channels.json 中的Token,确保没有多余空格或换行符
3. OpenClaw服务未运行:用 docker ps 或 ps aux | grep openclaw 确认服务状态
4. JSON格式错误:用JSONLint在线工具检查配置文件格式
5. AI API额度耗尽:登录AI服务商后台查看余额
按这个顺序排查,基本都能快速定位问题。
如何给团队成员添加访问权限?
1. 让成员在Telegram搜索 @userinfobot
2. 发送 /start 获取用户ID(数字格式)
3. 把ID添加到 allowedUserIds 数组:
"allowedUserIds": [123456789, 987654321, 555555555]
4. 重启OpenClaw服务使配置生效
管理建议:
• 维护文档记录ID与姓名对应关系
• 成员离职时及时从白名单移除
• 定期审查白名单,确保安全性
• 可考虑使用配对码模式(enableDmPairing: true)自动化管理
Bot Token泄露了怎么办?
1. 立即撤销Token:在BotFather中发送 /revoke 命令
2. 生成新Token:发送 /token 获取新的Token
3. 更新配置:编辑 channels.json 替换为新Token
4. 重启服务:docker compose restart 使新配置生效
5. 检查损失:登录AI服务商后台查看用量统计
预防措施:
• 不要把Token提交到公开的GitHub仓库
• 使用密码管理器保存Token
• 不要在聊天记录或云笔记中明文保存
• 配置白名单限制访问者
• Token已泄露案例损失可达数百元
能否配置不同用户使用不同AI模型?
实现方式:
1. 在OpenClaw配置中设置多个AI模型
2. 使用用户组或权限配置分配模型
3. 例如:管理员用GPT-4,普通用户用GPT-3.5
具体配置步骤参考OpenClaw官方文档的Multi-Model章节。这个功能适合团队使用,可以控制成本和访问权限。
其他进阶功能:
• Skills集成(文件管理、Shell执行、网页搜索)
• 对话记忆配置
• 个性化提示词设置
• 自定义命令菜单
OpenClaw还能接入哪些平台?
已支持平台:
• Telegram(本教程介绍)
• 企业微信
• Discord
• Slack
配置方法类似:
1. 在对应平台创建Bot或应用
2. 获取API凭证(Token/Key)
3. 配置OpenClaw的 channels.json
4. 设置白名单或权限控制
5. 启动服务并测试
掌握Telegram配置后,其他平台基本是触类旁通。每个平台的具体配置可参考OpenClaw官方文档对应章节。
配置文件修改后为什么不生效?
正确操作流程:
1. 编辑 channels.json 配置文件
2. 保存文件
3. 重启OpenClaw服务:
• Docker:docker compose restart
• 系统服务:systemctl restart openclaw
• 本地运行:停止进程后重新启动
4. 查看日志确认配置加载成功
其他可能原因:
• JSON格式错误导致配置加载失败(检查日志)
• 编辑了错误的配置文件(确认挂载路径)
• 文件权限问题(确保OpenClaw进程可读)
• 配置被其他配置覆盖(检查优先级)
建议每次修改配置后都查看启动日志,确认无报错。
如何查看Bot的对话历史记录?
方式一:查看日志文件
• 默认路径:~/.clawdbot/logs/
• Docker部署:docker compose logs openclaw
方式二:Control UI(如果启用)
• 通过Web界面查看和管理对话
• 需要在配置中启用Control UI功能
方式三:直接查询数据库
• OpenClaw默认使用SQLite存储对话
• 数据库路径:~/.clawdbot/data/
• 可用SQLite客户端查看
隐私建议:
• 定期清理敏感对话记录
• 注意数据库文件的访问权限
• 团队使用时明确数据保留政策
13 分钟阅读 · 发布于: 2026年2月5日 · 修改于: 2026年2月5日




评论
使用 GitHub 账号登录后即可评论