如何区分每个 Slack 应用安装?

How to distinguish each Slack app installation?

我正在使用 Slack Bolt JS api。可以在 http://example.com/slack/install URL 之后成功将应用程序安装到 slack 工作空间中。我正在尝试将其集成到 SaaS 中。问题是如何区分 Slack 应用程序安装以及如何确定哪个 Slack 应用程序安装属于哪个 SaaS 用户?我的猜测是一些信息应该在 OAuth 流程中注入,但现在确定如何使用 Slack Bolt SDK 来做到这一点。

const app = new App({
    installerOptions: {
        installPath: '/slack/install',
        redirectUriPath: '/slack/oauth_redirect'
    },
    // token, etc
});

您似乎需要使用 OAuth 和您自己的 installationStorage 实施身份验证。看看这个doc

您需要完成的基本步骤是:

  1. 您需要使用 SLACK_CLIENT_IDSLACK_SECRET_IDSLACK_SIGNING_SECRET
  2. 启动您的应用
  3. 包括您的自定义回调以处理应用程序安装(installationStore 选项)。
  4. 在上面的示例中,您需要将 database.setdatabase.get 替换为您自己的数据库查询、服务器 API 或其他内容。 Here 你可以看到一个完整的例子。

完成此设置后,Slack 将从许多不同的工作区调用您的应用程序,并且将恢复正确的令牌 installationStore.fetchInstallation。这将在调用事件或消息处理程序之前发生。

PS:您不应在应用程序的初始化中包含令牌。稍后设置。