渠道接入
Channels 是 OpenClaw 与用户交互的通道。本章介绍如何连接 Telegram、Discord、Slack、飞书等主流通讯平台。
为什么需要渠道接入?
OpenClaw 的核心理念是"无需安装专属客户端,直接通过日常使用的通讯软件完成交互"。这样做的好处:
- 零学习成本:在熟悉的聊天工具中使用
- 随时随地:手机、电脑都能访问
- 多端同步:消息自动同步到所有设备
- 团队协作:多人可以共享同一个 Agent
支持的平台
| 平台 | 特点 | 适用场景 |
|---|---|---|
| Telegram | 配置简单,稳定可靠 | 个人使用 |
| Discord | 社区友好,支持服务器 | 团队协作 |
| Slack | 企业集成完善 | 工作场景 |
| 飞书 | 中文友好,企业级 | 国内团队 |
| Web UI | 功能完整,本地调试 | 开发测试 |
| 邮件 | 异步通知 | 报表推送 |
Telegram 接入
创建 Telegram Bot
- 在 Telegram 中搜索 @BotFather
- 发送
/newbot创建新机器人 - 按提示设置机器人名称
- 获取 Bot Token(格式:
123456789:ABCdefGHIjklMNOpqrsTUVwxyz)
配置 OpenClaw
# 添加 Telegram 渠道
openclaw channels add telegram --token YOUR_BOT_TOKEN
# 验证连接
openclaw channels status telegram --probe
获取 Chat ID
要发送消息给特定用户或群组,需要获取 Chat ID:
# 方法 1:通过 API 获取
curl https://api.telegram.org/botYOUR_BOT_TOKEN/getUpdates
# 方法 2:使用 OpenClaw 命令
openclaw channels telegram get-chat-id
配置示例
{
"channels": {
"telegram": {
"enabled": true,
"token": "YOUR_BOT_TOKEN",
"defaultChatId": "YOUR_CHAT_ID",
"allowedChats": ["CHAT_ID_1", "CHAT_ID_2"],
"parseMode": "Markdown"
}
}
}
Discord 接入
创建 Discord Bot
- 访问 Discord Developer Portal
- 点击"New Application"创建应用
- 进入"Bot"页面,点击"Add Bot"
- 获取 Bot Token
- 在"OAuth2"页面生成邀请链接,添加 Bot 到服务器
配置 OpenClaw
# 添加 Discord 渠道
openclaw channels add discord --token YOUR_BOT_TOKEN --client-id YOUR_CLIENT_ID
# 验证连接
openclaw channels status discord --probe
权限设置
确保 Bot 有以下权限:
- Send Messages
- Read Message History
- Embed Links
- Attach Files
配置示例
{
"channels": {
"discord": {
"enabled": true,
"token": "YOUR_BOT_TOKEN",
"clientId": "YOUR_CLIENT_ID",
"guildId": "YOUR_SERVER_ID",
"allowedChannels": ["CHANNEL_ID_1", "CHANNEL_ID_2"]
}
}
}
Slack 接入
创建 Slack App
- 访问 Slack API
- 点击"Create New App"
- 选择"From scratch",输入 App 名称
- 进入"OAuth & Permissions",添加以下权限:
chat:writechannels:historygroups:historyim:history
- 安装 App 到工作区,获取 Bot User OAuth Token
配置 OpenClaw
# 添加 Slack 渠道
openclaw channels add slack --token xoxb-YOUR-BOT-TOKEN --app-token xapp-YOUR-APP-TOKEN
# 验证连接
openclaw channels status slack --probe
启用 Socket Mode
Slack 推荐使用 Socket Mode 进行实时通信:
- 在 App 设置中启用 Socket Mode
- 生成 App-Level Token
- 配置 OpenClaw:
{
"channels": {
"slack": {
"enabled": true,
"token": "xoxb-YOUR-BOT-TOKEN",
"appToken": "xapp-YOUR-APP-TOKEN",
"socketMode": true
}
}
}
飞书接入
创建飞书机器人
- 访问 飞书开放平台
- 创建企业自建应用
- 在"凭证与基础信息"获取 App ID 和 App Secret
- 在"权限管理"开通以下权限:
im:message(获取与发送消息)im:message:send_as_bot(以应用身份发消息)
- 发布应用并添加到群组
配置 OpenClaw
# 添加飞书渠道
openclaw channels add feishu --app-id YOUR_APP_ID --app-secret YOUR_APP_SECRET
# 验证连接
openclaw channels status feishu --probe
配置事件订阅
在飞书应用后台配置事件订阅:
- 请求地址:
https://your-server/webhook/feishu - 订阅事件:
im.message.receive_v1
配置示例
{
"channels": {
"feishu": {
"enabled": true,
"appId": "YOUR_APP_ID",
"appSecret": "YOUR_APP_SECRET",
"encryptKey": "YOUR_ENCRYPT_KEY",
"verificationToken": "YOUR_VERIFICATION_TOKEN"
}
}
}
Web UI
Web UI 是 OpenClaw 自带的 Web 界面,功能最完整。
启动 Web UI
# 启动 Gateway(包含 Web UI)
openclaw gateway start
# 访问 Web UI
# http://127.0.0.1:18789
配置参数
# 设置端口
openclaw config set gateway.port 18789
# 设置访问 Token
openclaw config set gateway.token YOUR_TOKEN
# 启用/禁用 Web UI
openclaw config set gateway.webui.enabled true
远程访问
如果 OpenClaw 部署在远程服务器,需要建立 SSH 端口转发:
# 在本地电脑执行
ssh -N -L 18789:127.0.0.1:18789 user@server-ip
然后访问 http://127.0.0.1:18789。
邮件渠道
邮件渠道主要用于发送通知和报表。
配置 SMTP
# 配置邮件发送
openclaw config set email.smtp.host smtp.example.com
openclaw config set email.smtp.port 587
openclaw config set email.smtp.user [email protected]
openclaw config set email.smtp.pass YOUR_PASSWORD
openclaw config set email.from [email protected]
发送邮件
# 通过命令行发送
openclaw email send --to [email protected] --subject "测试邮件" --body "这是测试内容"
# 在任务中使用
{
"prompt": "生成日报并发送到我的邮箱"
}
多渠道管理
查看所有渠道
# 查看已配置的渠道
openclaw channels list
# 查看渠道详情
openclaw channels info telegram
启用/禁用渠道
# 启用渠道
openclaw channels enable telegram
# 禁用渠道
openclaw channels disable telegram
测试渠道连接
# 测试所有渠道
openclaw channels status --probe
# 测试特定渠道
openclaw channels status telegram --probe
# 发送测试消息
openclaw channels test telegram --message "测试消息"
移除渠道
# 移除渠道
openclaw channels remove telegram
消息路由
路由规则
可以为不同渠道设置不同的处理规则:
{
"routing": {
"rules": [
{
"channel": "telegram",
"agent": "personal-assistant"
},
{
"channel": "slack",
"agent": "work-assistant"
},
{
"channel": "feishu",
"keywords": ["紧急", "urgent"],
"priority": "high"
}
]
}
}
多 Bot 配置
可以为不同群组配置不同的 Bot:
{
"channels": {
"telegram": {
"bots": [
{
"name": "work-bot",
"token": "WORK_BOT_TOKEN",
"allowedChats": ["WORK_CHAT_ID"]
},
{
"name": "personal-bot",
"token": "PERSONAL_BOT_TOKEN",
"allowedChats": ["PERSONAL_CHAT_ID"]
}
]
}
}
}
安全配置
访问控制
限制谁可以使用你的 Agent:
{
"channels": {
"telegram": {
"allowedUsers": ["USER_ID_1", "USER_ID_2"],
"allowedChats": ["CHAT_ID_1", "CHAT_ID_2"]
}
}
}
消息过滤
过滤敏感信息:
{
"channels": {
"telegram": {
"messageFilter": {
"blockPatterns": ["password", "secret", "token"],
"maxMessageLength": 4096
}
}
}
}
速率限制
防止滥用:
{
"channels": {
"telegram": {
"rateLimit": {
"maxRequests": 100,
"windowMs": 60000
}
}
}
}
常见问题
Telegram Bot 无响应
检查清单:
- Bot Token 是否正确
- Bot 是否被添加到群组
- 是否设置了 allowedChats 限制
- 查看日志:
openclaw channels logs telegram
Discord Bot 权限不足
解决:
- 检查 Bot 角色权限
- 确保 Bot 有"Send Messages"权限
- 重新邀请 Bot 到服务器
飞书消息收不到
检查:
- 应用是否已发布
- 事件订阅是否配置正确
- 权限是否已开通
- Encrypt Key 是否正确
Web UI 无法访问
解决:
# 检查服务状态
openclaw gateway status
# 检查端口是否被占用
lsof -i :18789
# 重启服务
openclaw gateway restart
下一步
- 多 Agent 协作 - 不同渠道使用不同 Agent
- 定时任务 - 配置自动通知
- 最佳实践 - 生产环境配置建议