Slack 桥接 #

基于 mautrix-slack。支持现代 Slack 工作区(免费和付费套餐均可)。频道映射为 Matrix 房间,整个工作区变成一个 Matrix 空间,DM / 线程 / 表情回应全部双向同步。

前置条件 #

  • Meldry 套餐: Pro 或 Business
  • 一个想桥接的工作区上的 Slack 账户
  • 工作区管理员同意安装 Slack 应用——如果你不是管理员,桥接也能用用户 token 认证,但某些功能(频道列表同步、DM 列表)会受限

启用桥接 #

  1. 打开 仪表板 → 服务器 → 桥接
  2. 找到 Slack,点 启用
  3. 等约 10 秒。桥接机器人会出现在 @slackbot:<你的名称>.meldry.com

关联 Slack 账户 #

有两种登录方式,二选一。

方案 A——Token 登录(最简单,无需管理员) #

使用你个人的 Slack 用户 token——Slack 桌面/网页端用的就是同一个凭据。

  1. 在 Slack(网页或桌面)里,打开你想桥接的工作区。
  2. 打开浏览器开发者工具 → Application → Local Storage → https://app.slack.com
  3. 找到 localConfig_v2 这一项。在里面找到你工作区对应的 token 字段——以 xoxc-... 开头。
  4. 再在 Cookies → https://app.slack.com 里找到 d cookie——以 xoxd-... 开头。
  5. 在 Matrix 客户端里给 @slackbot:<你的名称>.meldry.com 发:
    login-token xoxc-... xoxd-...
    
  6. 机器人确认 Successfully logged in as @yourname on My Workspace

可为其他工作区重复此步骤——每次 login-token 添加一个工作区。

方案 B——OAuth(需要工作区管理员安装 Meldry Slack 应用) #

  1. 工作区管理员从 https://<你的名称>.meldry.com/slack/install 安装 Meldry Slack 应用。
  2. 之后工作区里的任何用户都可以在桥接机器人的私聊里运行 login——会被重定向到 Slack 的 OAuth 授权页。
  3. 授权后机器人确认 Logged in via OAuth

OAuth 的逐用户授权更干净,也能在 Slack 密码变更后继续有效;token 方式在 Slack 会话过期时会断开。

会被桥接什么 #

  • 公开频道——作为子房间出现在对应工作区的空间下。
  • 私密频道——同上,但只对成员可见。
  • DM 和多人 DM(MPDM)——作为 Matrix DM 房间出现。
  • 线程(Thread)——Slack 线程变成 Matrix 线程,回复双向同步。
  • 表情反应——双向同步,含 emoji 翻译。
  • @ 提及——Matrix 的 @user 映射到 Slack 的 <@UXXX>,反之亦然。
  • 文件上传——图片、视频、音频、任意文件,上限是 Slack 工作区的限制。
  • 编辑与删除——双向。

不被桥接的内容 #

  • Huddles(语音/视频)——不支持。
  • Canvas 文档——只读,以纯文本链接形式展示。
  • Workflow 和 App——显示为 bot 消息,无法从 Matrix 触发。
  • Slack Connect 共享频道——桥接能看到消息,但跨工作区的回复归属可能会错乱。

按需桥接某一个频道 #

默认登录后,你加入的 所有 频道都会被桥接。如果你想只桥接一两个——在 login 命令中加 --no-auto-join,然后运行:

join !matrix-room-id #slack-channel-name

命令列表 #

命令作用
loginOAuth 登录流程
login-token xoxc-... xoxd-...个人 token 登录
logout解绑当前工作区
workspaces列出已关联的工作区
join <matrix-room> <slack-channel>手动桥接某个频道
sync强制全量同步
help完整命令列表

故障排查 #

"Invalid tokens"——xoxcxoxd 凭据过期了。重新登录 Slack 并复制新的值。

登录后频道缺失——Slack 的 token 认证只能看到你明确加入的频道。先在 Slack 里加入该频道,然后运行 sync

Emoji 不翻译——工作区自定义 emoji 需要单独上传到 Matrix。桥接只自动处理标准 emoji。

回填慢——有几千个频道的工作区需要几分钟。sync 命令是分批的,进度会在桥接 DM 里显示。

"Workspace is paywalled"——Slack 免费套餐限制 90 天的消息历史。桥接只能回填 Slack API 返回的部分。

限制 #

  • 工作区侧加密。 Slack 不支持端到端加密,所以桥接房间里的消息到了 Slack 侧就是明文,跟 Matrix 房间的加密设置无关。
  • Slack 速率限制。 Slack Web API 有较激进的限流。大批量同步操作(一次加入 100 个频道)会暂停再恢复。

解除关联 #

删除单个工作区:在桥接 DM 里发 logout,机器人会问你要解绑哪个工作区。要完全卸载桥接并释放配额,在 仪表板 → 服务器 → 桥接 里禁用它。

下一步 #