如何使用Slack';带有Java桌面应用程序的OAuth2

如何使用Slack';带有Java桌面应用程序的OAuth2,java,oauth-2.0,slack,slack-api,Java,Oauth 2.0,Slack,Slack Api,有没有办法使用OAuth2通过Slack对java桌面应用程序进行身份验证?我试着跟着 我被卡住了,因为它说您在应用程序的重定向uri中获得了访问令牌。但是,由于我正在制作的应用程序不存在于web浏览器中,我是否可以这样做 我的java应用程序能否启动一个可以与其通信的本地主机站点,以用作重定向uri?如果是,如何实现?桌面应用程序作为内部集成 在我们深入了解更多细节之前,请注意,如果您计划将桌面应用程序仅用于自己的空闲工作区,则有一个简单的解决方案。在这种情况下,您的应用程序不需要支持完整的O

有没有办法使用OAuth2通过Slack对java桌面应用程序进行身份验证?我试着跟着

我被卡住了,因为它说您在应用程序的重定向uri中获得了访问令牌。但是,由于我正在制作的应用程序不存在于web浏览器中,我是否可以这样做


我的java应用程序能否启动一个可以与其通信的本地主机站点,以用作重定向uri?如果是,如何实现?

桌面应用程序作为内部集成

在我们深入了解更多细节之前,请注意,如果您计划将桌面应用程序仅用于自己的空闲工作区,则有一个简单的解决方案。在这种情况下,您的应用程序不需要支持完整的Oauth工作流程,您有两个选项:

  • 通过管理页面将应用程序安装为 然后将令牌复制并粘贴到桌面应用程序
  • 为空闲工作区创建一个文件夹,然后复制并粘贴到桌面(不推荐)
我还想预先澄清一下,您的应用程序只需运行Oauth进程一次,即可将其安装到新的Slack工作区中。生成的令牌没有过期日期,因此不必重新格式化

用于多个空闲工作区的桌面应用程序

如果计划将桌面应用程序分发到多个空闲工作区,则需要支持完整的Oauth安装过程

Slack使用的是OAuth2.0,因此原则上,这个老版本的所有标准答案也适用于Slack

但是,由于您不能假设用户的本地计算机可以从Internet访问(例如,重定向回本地web服务器将不起作用,因为Slack很可能无法访问它),因此您需要一个在web服务器上运行且可以从Internet访问的web helper应用程序

这个web助手应用程序基本上是一个小型网站,它在新的工作空间中执行安装过程的完整Oauth舞蹈。您的应用程序可以打开浏览器窗口并重定向到web helper应用程序以启动登录过程。然后,您有两种基本方法来处理连接回桌面应用程序:

  • 向用户显示生成的令牌,并要求他复制并粘贴它 到您的桌面应用程序(简单方法)
  • 将生成的令牌存储在web helper应用程序中,并向桌面应用程序提供API以自动获取它。(方便用户的方法)

如果您正在寻找此类web helper应用程序的起点,请查看安装Slack应用程序的步骤。

以下是Oauth 2.0主题的一般答案:当您说Oauth进程只需运行一次时,这只是作为内部集成的桌面应用程序,还是作为多个空闲工作区的桌面应用程序?每个空闲工作区一次。Oauth进程用于将Slack应用程序安装到Slack工作区,通常只需执行一次。(权限发生更改时除外,您需要将其重新安装到空闲工作区)