跳到主要内容

渠道接入

Channels 是 OpenClaw 与用户交互的通道。本章介绍如何连接 Telegram、Discord、Slack、飞书等主流通讯平台。

为什么需要渠道接入?

OpenClaw 的核心理念是"无需安装专属客户端,直接通过日常使用的通讯软件完成交互"。这样做的好处:

  • 零学习成本:在熟悉的聊天工具中使用
  • 随时随地:手机、电脑都能访问
  • 多端同步:消息自动同步到所有设备
  • 团队协作:多人可以共享同一个 Agent

支持的平台

平台特点适用场景
Telegram配置简单,稳定可靠个人使用
Discord社区友好,支持服务器团队协作
Slack企业集成完善工作场景
飞书中文友好,企业级国内团队
Web UI功能完整,本地调试开发测试
邮件异步通知报表推送

Telegram 接入

创建 Telegram Bot

  1. 在 Telegram 中搜索 @BotFather
  2. 发送 /newbot 创建新机器人
  3. 按提示设置机器人名称
  4. 获取 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

  1. 访问 Discord Developer Portal
  2. 点击"New Application"创建应用
  3. 进入"Bot"页面,点击"Add Bot"
  4. 获取 Bot Token
  5. 在"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

  1. 访问 Slack API
  2. 点击"Create New App"
  3. 选择"From scratch",输入 App 名称
  4. 进入"OAuth & Permissions",添加以下权限:
    • chat:write
    • channels:history
    • groups:history
    • im:history
  5. 安装 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 进行实时通信:

  1. 在 App 设置中启用 Socket Mode
  2. 生成 App-Level Token
  3. 配置 OpenClaw:
{
"channels": {
"slack": {
"enabled": true,
"token": "xoxb-YOUR-BOT-TOKEN",
"appToken": "xapp-YOUR-APP-TOKEN",
"socketMode": true
}
}
}

飞书接入

创建飞书机器人

  1. 访问 飞书开放平台
  2. 创建企业自建应用
  3. 在"凭证与基础信息"获取 App ID 和 App Secret
  4. 在"权限管理"开通以下权限:
    • im:message(获取与发送消息)
    • im:message:send_as_bot(以应用身份发消息)
  5. 发布应用并添加到群组

配置 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 无响应

检查清单

  1. Bot Token 是否正确
  2. Bot 是否被添加到群组
  3. 是否设置了 allowedChats 限制
  4. 查看日志:openclaw channels logs telegram

Discord Bot 权限不足

解决

  1. 检查 Bot 角色权限
  2. 确保 Bot 有"Send Messages"权限
  3. 重新邀请 Bot 到服务器

飞书消息收不到

检查

  1. 应用是否已发布
  2. 事件订阅是否配置正确
  3. 权限是否已开通
  4. Encrypt Key 是否正确

Web UI 无法访问

解决

# 检查服务状态
openclaw gateway status

# 检查端口是否被占用
lsof -i :18789

# 重启服务
openclaw gateway restart

下一步