Skip to content

Slack 应用

通过 Slack Bot OAuth Token 和 Socket Mode 将 PRX 接入 Slack 工作区。

前置条件

  • 一个 Slack 工作区的管理员权限
  • Slack API 创建的应用
  • PRX 守护进程已运行

快速配置

1. 获取凭证

  1. 前往 Slack API 点击 Create New App
  2. OAuth & Permissions 中添加 Bot Token Scopes:chat:writechannels:historygroups:historyim:historyapp_mentions:read
  3. 安装应用到工作区,获取 Bot User OAuth Tokenxoxb-...
  4. Basic Information > App-Level Tokens 中创建 Token(需 connections:write 权限),获取 xapp-... Token
  5. Socket Mode 中启用 Socket Mode

2. 编辑配置

~/.config/openprx/config.toml 中添加:

toml
[channels_config.slack]
bot_token = "xoxb-..."
app_token = "xapp-..."
channel_id = "C0123456789"
allowed_users = ["U0123456789"]
mention_only = false

3. 验证

bash
prx channel doctor slack

配置参考

字段类型默认值说明
bot_tokenString必填Slack Bot OAuth Token(xoxb-...
app_tokenString?nullSlack App-Level Token(xapp-...),用于 Socket Mode
channel_idString?null限制 Bot 仅在指定频道工作
allowed_usersVec<String>[](拒绝全部)允许的 Slack 用户 ID 列表
mention_onlyboolfalse在频道中是否只响应 @bot 的消息

功能特性

  • Socket Mode — 通过 WebSocket 接收事件,无需公网 URL
  • 频道和私聊 — 支持公共频道、私有频道和 DM
  • @提及过滤 — 可配置为仅响应 @提及 消息
  • 频道隔离 — 可限制 Bot 仅在指定频道工作

限制

  • Socket Mode 需要 App-Level Token
  • 单条消息最大 40,000 字符(含格式化标记)
  • 需要工作区管理员批准应用安装

故障排除

Bot 未响应

  1. 确认 Socket Mode 已启用
  2. 检查 app_token 是否正确(必须是 xapp- 开头)
  3. 确认 Bot 已被邀请到目标频道

权限不足

  • 检查 Bot Token Scopes 是否包含所需权限
  • 重新安装应用到工作区以应用新权限

Released under the Apache-2.0 License.