首页 教程 分类 Skills下载 关于
ZH EN JA KO
频道对接

OpenClaw连接Slack工作区教程

· 11 分钟

前言

Slack 是企业团队最常用的协作工具之一。将 OpenClaw 连接到 Slack,可以为团队提供一个随时可用的 AI 助手,帮助回答问题、生成内容和处理日常任务。本文将详细讲解从创建 Slack App 到完成连接的全过程。

前置条件

  • OpenClaw 已安装并正常运行
  • 你拥有 Slack 工作区的管理员权限
  • 工作区允许安装自定义应用

连接方式选择

OpenClaw 支持两种方式连接 Slack:

方式 说明 适用场景
Socket Mode 通过 WebSocket 连接,无需公网地址 本地部署、内网环境
Event Subscriptions 通过 HTTP Webhook 接收事件 公网服务器、生产环境

推荐新手使用 Socket Mode,配置简单且不需要公网 IP 或域名。

第一步:创建 Slack App

1.1 访问 Slack API 平台

打开 Slack API,点击 Create New App

1.2 选择创建方式

选择 From scratch(从头创建):

  1. 输入应用名称:如 "OpenClaw Assistant"
  2. 选择要安装到的工作区
  3. 点击 Create App

1.3 基本信息设置

Basic Information 页面:

  • 上传应用图标
  • 填写应用描述
  • 记下 Signing Secret,后面配置需要用到

第二步:配置权限和事件

2.1 设置 Bot Token Scopes

在左侧菜单点击 OAuth & Permissions,滚动到 Bot Token Scopes,添加以下权限:

所需 Bot Token Scopes:
├── app_mentions:read    - 读取 @提及消息
├── channels:history     - 读取公开频道消息历史
├── channels:read        - 查看公开频道信息
├── chat:write           - 发送消息
├── groups:history       - 读取私有频道消息历史
├── groups:read          - 查看私有频道信息
├── im:history           - 读取私信历史
├── im:read              - 查看私信信息
├── im:write             - 发送私信
├── mpim:history         - 读取群组私信历史
├── reactions:write      - 添加表情反应
├── users:read           - 查看用户信息
└── files:read           - 读取文件(可选,用于处理上传的文件)

2.2 配置 Event Subscriptions

在左侧菜单点击 Event Subscriptions,开启 Enable Events

使用 Socket Mode(推荐)

如果选择 Socket Mode,无需填写 Request URL。在左侧菜单点击 Socket Mode,开启它:

  1. 点击 Enable Socket Mode
  2. 为 App-Level Token 命名(如 "openclaw-socket")
  3. 添加 scope:connections:write
  4. 点击 Generate,保存生成的 Token(以 xapp- 开头)

使用 Event Subscriptions HTTP 方式

如果选择 HTTP 方式,需要先启动 OpenClaw 并确保公网可访问,然后在 Request URL 填入:

https://your-domain.com/webhook/slack/events

2.3 订阅 Bot Events

在 Event Subscriptions 页面的 Subscribe to bot events 部分,添加以下事件:

事件 说明
app_mention 有人 @Bot 时触发
message.channels 公开频道有新消息
message.groups 私有频道有新消息
message.im 私信有新消息
message.mpim 群组私信有新消息

点击 Save Changes 保存。

第三步:安装应用到工作区

  1. 回到 OAuth & Permissions 页面
  2. 点击 Install to Workspace
  3. 审核权限并点击 Allow
  4. 安装成功后,复制 Bot User OAuth Token(以 xoxb- 开头)

第四步:配置 OpenClaw

4.1 Socket Mode 配置

编辑 ~/.config/openclaw/openclaw.json5

{
  channels: {
    slack: {
      enabled: true,
      // Bot User OAuth Token(xoxb- 开头)
      botToken: "xoxb-1234567890-1234567890123-AbCdEfGhIjKlMnOpQrStUv",
      // App-Level Token(xapp- 开头,Socket Mode 必须)
      appToken: "xapp-1-A1234567890-1234567890123-abcdef1234567890abcdef",
      // Signing Secret(从 Basic Information 页面获取)
      signingSecret: "abc123def456ghi789",

      // 连接模式
      mode: "socket",  // "socket" 或 "http"

      // 触发配置
      trigger: {
        // 是否需要 @Bot 才回复
        mentionRequired: true,
        // 是否响应私信(不需要 @)
        dmEnabled: true,
        // 自定义触发关键词(可选)
        keywords: ["ask", "问"]
      }
    }
  }
}

4.2 HTTP 模式配置

如果使用 HTTP 模式:

{
  channels: {
    slack: {
      enabled: true,
      botToken: "xoxb-xxxx",
      signingSecret: "your-signing-secret",
      mode: "http",

      // HTTP 模式下的 Webhook 路径
      webhookPath: "/webhook/slack/events"
    }
  }
}

4.3 通过环境变量配置

export SLACK_BOT_TOKEN="xoxb-1234567890-xxxxx"
export SLACK_APP_TOKEN="xapp-1-A1234567890-xxxxx"
export SLACK_SIGNING_SECRET="abc123def456"

4.4 重启并验证

openclaw restart

# 查看 Slack 频道的连接日志
openclaw logs -f --component channel:slack

成功连接后的日志:

[INFO] [channel:slack] Socket Mode 连接已建立
[INFO] [channel:slack] Bot 已登录为 @OpenClaw Assistant
[INFO] [channel:slack] 监听工作区: Your Workspace

第五步:在 Slack 中使用

邀请 Bot 到频道

Bot 安装后默认不在任何频道中。你需要手动邀请:

  1. 进入目标频道
  2. 输入 /invite @OpenClaw Assistant
  3. 或者在频道设置 → 集成 → 添加应用

交互方式

# 在频道中 @Bot 提问
@OpenClaw Assistant 请帮我写一个 Python 排序算法

# 私信直接对话(无需 @)
你好,帮我翻译这段英文

# 在帖子中继续对话
(在 Bot 回复的帖子中直接发消息即可继续上下文对话)

帖子回复配置

Slack 的帖子(Thread)是管理对话的好方式。你可以配置 Bot 的回复行为:

{
  channels: {
    slack: {
      reply: {
        // 是否在帖子中回复(避免刷屏)
        threadReply: true,
        // 帖子回复后是否同时在频道中显示
        broadcastReply: false,
        // 处理中显示"正在输入"状态
        showTyping: true,
        // 发送前先添加一个思考中的表情
        thinkingEmoji: "thinking_face",
        // 回复完成后添加确认表情
        doneEmoji: "white_check_mark"
      }
    }
  }
}

频道和权限控制

限制 Bot 工作的频道

{
  channels: {
    slack: {
      // 只在指定频道中响应
      allowedChannels: ["C01234ABCDE", "C05678FGHIJ"],
      // 或者用频道名
      allowedChannelNames: ["ai-assistant", "bot-testing"],
      // 忽略的频道
      ignoredChannels: ["C09999XXXXX"]
    }
  }
}

限制可以使用 Bot 的用户

{
  channels: {
    slack: {
      // 允许的用户 ID 列表(空数组表示允许所有人)
      allowedUsers: [],
      // 管理员用户(可以执行管理命令)
      adminUsers: ["U01234ADMIN"]
    }
  }
}

工作区权限审批

在企业级 Slack 工作区中,安装应用可能需要管理员审批:

  1. 工作区管理员前往 管理应用 页面
  2. 在待审批列表中找到 OpenClaw Assistant
  3. 审核权限范围后点击批准
  4. 批准后应用才能正常工作

故障排查

Bot 不响应消息

# 检查连接状态
openclaw logs --level error --component channel:slack

# 常见原因:
# 1. Bot 没有被邀请到频道
# 2. Message Content 事件未订阅
# 3. Token 不正确或已过期

Socket Mode 连接失败

# 确认 App-Level Token 正确
# 确认 Socket Mode 已在 Slack API 平台开启
# 检查网络连接(Socket Mode 需要访问 wss://wss-primary.slack.com)

HTTP 模式验证失败

# 确认 Signing Secret 正确
# 确认 Request URL 可以从公网访问
# 确认 OpenClaw 正在运行且端口已开放

总结

将 OpenClaw 连接到 Slack 的核心步骤:

  1. 在 Slack API 平台创建应用并配置权限
  2. 选择 Socket Mode 或 HTTP 模式
  3. 获取 Bot Token、App Token 和 Signing Secret
  4. 在 OpenClaw 配置文件中填入凭据
  5. 重启服务并邀请 Bot 到目标频道

Socket Mode 更适合快速上手和内网部署,HTTP 模式则适合有公网地址的生产环境。

OpenClaw 是开源免费的个人AI助手,支持 WhatsApp、Telegram、Discord 等多平台接入