查看 Markdown

在 Hub 中使用 Slack

Slack 可以通过两种方式连接 Hub:

传输方式需要公开 HTTPS适用场景
Socket Mode否本地、个人和单进程的 Hub
Webhooks是公开服务器部署

浏览器设置中默认使用 Socket Mode。两种传输方式产生相同的 slack.mention 触发器和线程回复。

设置 Socket Mode

在 Hub 中打开 Apps → Slack,保持选中 Socket Mode。Hub 会给出 Slack manifest 以及具体步骤:

  1. 用 manifest 创建 Slack 应用。
  2. 生成带有 connections:write 的 App-level token。
  3. 安装应用并复制它的 Bot User OAuth Token。

把两个 token 粘贴到 Hub 中,然后选择 Connect Slack。Hub 会验证安装,为当前组织保存它,并打开出站的 Socket Mode 连接。

把机器人邀请到每个它需要关注的频道:

/invite @Paseo

现在编写一个 Slack 触发器。

Socket Mode 在 Hub 进程中保持一条活动连接。使用这种传输方式时,请只运行一个 Hub 进程并保持它运行;它停止期间到达的事件会丢失。

使用 webhook

当 Slack 应该把事件发送到一个稳定的公开 Hub 时,选择 Webhooks。设置之前,Hub 必须已经在其公开 HTTPS 地址上打开,这样生成的重定向 URL 和请求 URL 才正确。

Apps 指南会给出一份 webhook manifest,并要求填写 App ID、Client ID、Client Secret 和 Signing Secret。保存后会跳转到 Slack,以便你把应用安装到某个 Slack 工作区。

Slack 调用:

Provider 设置Hub URL
Redirect URL<PASEO_HUB_APP_URL>/api/integrations/slack/callback
Request URL<PASEO_HUB_APP_URL>/api/integrations/slack/events

请从 Hub 发起安装。只从 Slack 发起的安装不会绑定到任何 Hub 组织。

通过环境变量配置

把应用密钥保存在 Hub 之外的部署可以使用一套完整的传输配置。

Socket Mode:

SLACK_TRANSPORT=socket
SLACK_APP_ID=A01234567
SLACK_APP_TOKEN=xapp-...

Bot User OAuth Token 仍然附加在每个已保存的 Slack 工作区连接上;它不属于 Socket Mode 的环境变量配置。

Webhooks:

SLACK_TRANSPORT=webhook
SLACK_APP_ID=A01234567
SLACK_CLIENT_ID=...
SLACK_CLIENT_SECRET=...
SLACK_SIGNING_SECRET=...

环境变量配置优先于已保存的 Slack 应用,并在 Apps 下显示为 Managed by environment。

赞助商