Slack

以 Markdown 格式查看

索引内容

Slack 连接器会索引 Slack Bot 可访问的未归档公开频道和私有频道中的消息串。一条根消息及其回复会成为一个可搜索文档。连接器的频道抓取范围不包括私信。

默认会过滤 Bot 和 App 消息。需要索引自动化信息流时可以将其纳入。还可以通过精确的小写名称或完全匹配的正则表达式限定频道,然后在包含过滤器之后应用单独的排除列表。

设置索引效果
Channels留空时考虑凭据可访问的所有公开或私有频道;也可输入精确频道名缩小范围。
Enable Channel Regex将每个 Channels 值视为完全匹配的正则表达式。
Channels to Exclude在包含过滤器之后移除精确匹配的频道名。
Enable Exclude Channel Regex将每个排除项视为完全匹配的正则表达式。
Include Bot Messages纳入默认会跳过的 Bot 和 App 消息。

前置条件

  • OpenCore Admin 必须能够创建凭据和连接器。
  • 在工作区安装 Slack App,并确保其 Bot 可以看到所有计划索引的频道。私有频道需要显式添加 Bot。
  • 内置 OAuth 流程会请求频道历史/读取、私有频道历史/读取、加入频道、读取用户和邮箱、读取用户组以及私信历史 scope,但内置 OAuth 不会请求 team:read。普通单工作区可以使用该内置 OAuth;索引连接器仍只抓取公开和私有频道,不抓取私信。
  • Enterprise Grid 验证会调用 auth.teams.list。当前内置 OAuth 不会请求 team:read,因此 Grid 部署必须使用带 team:read 的手工 Bot Token,除非部署已明确扩展内置 OAuth scope。
  • 内置 OAuth 需要 OAUTH_SLACK_CLIENT_IDOAUTH_SLACK_CLIENT_SECRET、正确的 WEB_DOMAIN 和部署的 OAuth 状态存储。如果这些条件不具备,请手工创建 Bot Token 凭据。

凭据

方式OpenCore 凭据值说明
Slack OAuth无需把 Token 粘贴到表单。仅当部署启用了 Slack OAuth 且配置了客户端环境时可用。适用于普通工作区;Enterprise Grid 需要部署扩展 team:read scope。OpenCore 会保存返回的 Bot Token。
Bot Tokenslack_bot_token: <SLACK_BOT_TOKEN>使用已批准 Slack App 的 Bot Token。Enterprise Grid 需要包含 team:read。不要把用户 Token 或生产 Token 粘贴到文档或支持消息中。

Slack 已实现 OAuth。Admin UI 是否提供 OAuth 取决于部署配置。对于 Enterprise Grid,除非部署已扩展内置 OAuth 请求并加入 team:read,否则请使用手工 Bot Token 路径。

在 OpenCore 中配置

  1. 在 Admin 后台打开 Connectors,选择 Slack,然后创建或选择 Slack 凭据。普通工作区可使用内置 OAuth;Enterprise Grid 应使用带 team:read 的手工 Bot Token,除非部署已扩展 OAuth。
  2. 根据需要输入频道包含列表。频道名会被规范化为小写。
  3. 仅当每个值都是有效的完全匹配模式时,才启用包含正则表达式。
  4. 为绝不能索引的频道添加精确或正则排除项。
  5. 决定是否纳入 Bot 和 App 消息。
  6. 选择部署提供的文档访问模式,设置刷新和清理选项,然后创建连接器。
  7. 将生成的文档集附加给 Agent 前,先运行首次索引尝试。

权限

Slack 源权限同步是一项有部署条件的能力。当 Auto Sync Permissions 可用且已选择时,OpenCore 会解析频道访问权,并为已索引消息串保存源访问规则。私有频道仅限解析出的成员。

对于 Enterprise Grid 公开频道,只有当工作区/Team 映射已知且非空,并且所涉及工作区的已解析用户并集不超过 5,000 条时,OpenCore 才会按该用户并集限制访问。如果映射未知或为空、频道所属工作区不在映射中,或用户并集超过 5,000 条的实现上限,权限同步会对该公开频道 fail-open,并将其保存为 OpenCore Public。此后所有 OpenCore 用户都能搜索该频道,范围可能大于 Slack 工作区成员。该回退仅适用于公开频道,不会把私有频道变为 Public。

源权限同步不可用或未选择时,搜索不会自动执行 Slack 频道成员关系。对于受限内容,请使用 OpenCore Private 访问模式并显式分配用户组;只有当所有 OpenCore 账号都可查看全部已索引 Slack 内容时,才使用 Public

验证

  1. 确认凭据验证能够完成认证并列出至少一个公开频道。
  2. 启动索引尝试,确认完成时没有 invalid_authnot_authedtoken_revokedmissing_scope 错误。
  3. 搜索所包含频道中的一条近期根消息和一条回复。
  4. 确认被排除的频道和默认过滤的 Bot 消息没有出现。
  5. 如果选择了 Auto Sync Permissions,分别使用一个可访问和一个不可访问私有频道的用户测试。
  6. 在 Enterprise Grid 上,还要用不属于该频道所共享到任何 Slack 工作区的 OpenCore 用户验证一个公开频道。如果该用户能搜索到它,应将该频道视为 fail-open 的 OpenCore Public,并在发布前确认所有 OpenCore 用户都获准查看其内容。

故障排除

现象检查项
列出频道或验证 Grid 时出现 missing_scope为 App 授予所需的公开/私有频道读取 scope。对于 Enterprise Grid,应使用带 team:read 的手工 Bot Token,除非部署已扩展内置 OAuth scope。
缺少某个私有频道将 Slack Bot 添加到该频道,并确认精确或正则过滤器没有将其排除。
看不到 Bot 生成的内容启用 Include Bot Messages;该选项默认关闭。
正则表达式导致连接器创建失败修复无效模式。包含和排除正则表达式都采用完全匹配语义。
OAuth 失败或按钮未显示检查 Slack OAuth 客户端值、公开回调域名和 OAuth 状态存储;否则使用手工 Bot Token。
Grid 公开频道在所属工作区之外可见检查工作区/Team 发现或用户枚举是否失败、频道是否未映射到已知工作区,或解析出的用户并集是否超过 5,000 条。任一条件都可能使该公开频道变为 OpenCore Public。

相关页面