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

时间:2019-12-05 14:49:38

标签: slack slack-api

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

我已经在我的“应用程序管理”页面上添加了/slack/redirect-url作为重定向URL。然后尝试在以下页面上安装\重新安装该应用程序: enter image description here

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

但是,如果我转到“分发”部分并尝试从那里安装应用程序,它将调用我的重定向URL: enter image description here

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

1 个答案:

答案 0 :(得分:1)

“重新安装应用程序”按钮将处理Slack中验证和授予OAuth令牌的整个交换,因此无需重定向。

重定向URL供使用您的服务进​​行身份验证的用户使用,因此需要存储令牌。

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

在应用管理视图中使用“重新安装应用”按钮时,步骤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