如果我在我的工作区中安装机器人,为什么 Slack 不会将我重定向到预定义的重定向 URL?

Why Slack doesn't redirect me to predefined redirect URL if I install the bot in my workspace?

我想在我的 Slack 应用程序中实现 oAuth2 流程,但无法正确测试。

我在我的应用程序管理页面上添加了 /slack/redirect-url 作为重定向 URL。然后尝试 install\reinstall 以下页面上的应用程序:

不幸的是,它不起作用,我的端点没有被调用。

但是,如果我转到 "Distribution" 部分并尝试从那里安装应用程序,它会调用我的重定向 URL:

那么,问题是什么?为什么第一种方法不调用我的重定向 URL,而第二种方法呢?我错过了一些基本的东西吗?

"Reinstall App" 按钮将处理在 Slack 中验证和授予 OAuth 令牌的整个交换过程,因此不需要重定向。

重定向 URL 适用于使用 your 服务进行身份验证的用户,因此 you 需要存储令牌。

  1. 用户点击安装按钮
  2. 用户通过Slack授权UI
  3. Slack 重定向到您想要的 URL
  4. 您获取重定向调用中包含的代码
  5. 您用代码交换 OAuth 令牌
  6. 您存储 OAuth 令牌

当您在应用程序管理视图中使用 "Reinstall App" 按钮时,步骤 3-6 完全由 Slack 处理并向您显示令牌。

要正确测试重定向 URL,您可以手动 through the OAuth flow。鉴于它们只是 GET 请求,您只需修改链接并直接粘贴到您的浏览器即可。

第 1 步:授权应用程序 – 这会将您发送到 Slack 进行授权,然后进行重定向

https://slack.com/oauth/authorize?client_id=CLIENT_ID&scope=SCOPES&redirect_uri=REDIRECT_URI

第2步:兑换OAuth令牌的验证码

https://slack.com/api/oauth.access?client_id=CLIENT_ID&client_secret=CLIENT_SECRET&redirect_uri=REDIRECT_URI&code=CODE