Skip to content
广告 · 本站推荐广告

Mattermost - 开源企业通讯接入 ​

Mattermost 是一个开源的企业级即时通讯平台,常被视为 Slack 的自托管替代方案(Self-hosted Slack Alternative)。通过创建 Bot Account(机器人账号),可以将 OpenClaw 接入 Mattermost 实现自动化交互。

前置要求 ​

  • 一个 Mattermost 实例(Self-hosted 或 Cloud)
  • 拥有 System Admin(系统管理员)或可创建 Bot 的权限
  • OpenClaw Gateway(网关)已安装并运行

接入步骤 ​

第一步:创建 Bot Account ​

  1. 登录 Mattermost,进入 System Console > Integrations > Bot Accounts
  2. 确认 Enable Bot Account Creation 已开启
  3. 进入 Integrations > Bot Accounts > Add Bot Account
  4. 填写 Bot 用户名、显示名称和描述
  5. 选择角色(建议 Member,按需授权)
  6. 创建后记录 Bot Access Token

安全提示

Bot Access Token 拥有完整 API 访问权限,请妥善保管。如果 Token 泄露,立即在 System Console 中 Revoke(撤销)并重新生成。

第二步:生成 Personal Access Token(备选方案) ​

如果无法创建 Bot Account,也可使用 Personal Access Token(个人访问令牌):

  1. 进入 Profile > Security > Personal Access Tokens
  2. 点击 Create Token,填写描述
  3. 记录生成的 Token

第三步:配置 OpenClaw ​

json5
{
  channels: {
    mattermost: {
      enabled: true,
      url: "https://your-mattermost.com",     // Mattermost 实例地址
      token: "YOUR_BOT_ACCESS_TOKEN",          // Bot 或 Personal Access Token
      dmPolicy: "pairing"                      // DM Policy(私信策略)
    }
  }
}

也可以通过 Environment Variable(环境变量)设置:

bash
export MATTERMOST_URL="https://your-mattermost.com"
export MATTERMOST_TOKEN="your-bot-token"

第四步:重启 Gateway 并配对 ​

bash
openclaw gateway restart

在 Mattermost 中向 Bot 发送私聊消息,获取 Pairing Code(配对码)后批准:

bash
openclaw pairing approve mattermost <pairing-code>

WebSocket 连接 ​

OpenClaw 通过 WebSocket(长连接)接收 Mattermost 的实时事件。连接建立后,Bot 可以即时响应消息。

json5
{
  channels: {
    mattermost: {
      websocket: {
        reconnectInterval: 5000,    // 断线重连间隔(毫秒)
        maxRetries: 10,             // 最大重试次数
        pingInterval: 30000         // 心跳间隔(毫秒)
      }
    }
  }
}

WebSocket vs Webhook

Mattermost 支持 Webhook 模式,但 OpenClaw 默认使用 WebSocket 以获得更低延迟和更稳定的连接。WebSocket 无需公网 IP。

Channel 权限 ​

json5
{
  channels: {
    mattermost: {
      allowChannels: ["town-square", "off-topic"],   // Channel 白名单(slug 名称)
      allowTeams: ["my-team"],                        // Team(团队)白名单
      requireMention: true                             // 需要 @机器人 才响应
    }
  }
}

留空或省略 allowChannels 则允许所有已加入的 Channel。

Thread(帖子)支持 ​

json5
{
  channels: {
    mattermost: {
      useThreads: true,                // 在 Thread 中回复
      threadFollowUp: true             // 自动跟进同一 Thread
    }
  }
}

启用后,Bot 的回复将以 Thread Reply(帖子回复)形式出现,保持 Channel 整洁。

DM Policy(私信策略) ​

策略说明
pairing用户需先获取 Pairing Code(配对码)验证
allowlist仅允许指定用户私聊
open所有人均可私聊(谨慎使用)

常见问题 ​

WebSocket 频繁断线 ​

  1. 检查 Mattermost 服务器版本(建议 7.0+)
  2. 确认网络防火墙未阻断 WebSocket 连接
  3. 适当增大 reconnectInterval 和 pingInterval

Bot 无法加入 Channel ​

  1. 确认 Bot 已被邀请到目标 Channel
  2. 确认 Channel 权限允许 Bot 发送消息
  3. Private Channel(私有频道)需要手动邀请

Token 认证失败 ​

  1. 确认 Token 未过期或被 Revoke
  2. 确认 Mattermost System Console 已启用 Bot Account 或 Personal Access Token

🇨🇳 中国用户须知

Mattermost 可私有部署,适合有自主可控需求的中国企业。

信创合规:Mattermost 开源版(Team Edition)可部署在国内服务器上,数据完全自控,满足等保和信创要求。

部署建议:使用 Docker 或 Kubernetes 部署在内网环境中,配合 OpenClaw 实现内部智能客服和自动化流程。

替代选择:如果团队已使用企业微信或飞书,建议优先使用原生渠道,减少系统复杂度。

社区版限制:Mattermost Team Edition 免费开源,Enterprise Edition(企业版)部分高级功能需付费。

基于MIT协议开源 | 内容翻译自 官方文档,同步更新