如何在 Java 桌面应用程序中使用 Slack 的 OAuth2
How to use Slack's OAuth2 with a Java desktop application
有没有办法使用 OAuth2 通过 Slack 验证 java 桌面应用程序?我正在尝试关注 Slack's guide。
我卡住了,因为它说您在应用程序的重定向 uri 中获取了访问令牌。但是由于我正在制作的应用程序不存在于网络浏览器中,无论如何我可以做到这一点吗?
我的 java 应用程序能否启动一个本地主机站点,它可以与之通信以用作重定向 uri?如果可以,怎么做?
作为内部集成的桌面应用程序
在我们深入了解更多细节之前,请注意,如果您计划仅将桌面应用程序用于您自己的 Slack 工作区,则有一个简单的解决方案。在这种情况下,您的应用不需要支持完整的 Oauth 工作流程,您有两个选择:
- 通过管理页面将您的应用安装为 internal integration
您的 Slack 应用程序,然后将令牌复制并粘贴到您的桌面应用程序
- 为您的 Slack 工作区创建一个 legacy token,然后复制并粘贴到您的桌面(不推荐)
我还想预先澄清一下,您的应用程序只需要 运行 Oauth 进程一次即可将其安装到新的 Slack 工作区中。生成的令牌没有到期日期,无需刷新。
用于多个 Slack 工作区的桌面应用程序
如果您计划将桌面应用分发到多个 Slack 工作区,您将需要支持完整的 Oauth 安装过程。
Slack 使用的是 Oauth 2.0,所以原则上,这个旧 Oauth wiki article 的所有标准答案也应该适用于 Slack。
但是,由于您不能假设您的用户的本地计算机可以从 Internet 访问(例如,重定向回本地 Web 服务器将不起作用,因为 Slack 很可能无法访问它),您需要一个 运行 在网络服务器上并且可以从 Internet 访问的网络助手应用程序。
这个 Web 帮助应用程序基本上是一个小型网站,它执行完整的 Oauth 舞蹈,用于安装到新的 Slack 工作区中。您的应用程序可以打开浏览器 window 并重定向到网络助手应用程序以启动登录过程。然后,您有两种基本方法来处理与桌面应用程序的连接:
- 向用户显示生成的令牌并要求他复制并粘贴
到您的桌面应用程序(简单方法)
- 将生成的令牌存储在您的网络助手应用程序中,并向您的桌面应用程序提供 API 以自动获取它。 (user-friendly 方法)
如果您正在寻找此类 Web 帮助应用程序的起点,请查看此 example PHP script 安装 Slack 应用程序。
有没有办法使用 OAuth2 通过 Slack 验证 java 桌面应用程序?我正在尝试关注 Slack's guide。
我卡住了,因为它说您在应用程序的重定向 uri 中获取了访问令牌。但是由于我正在制作的应用程序不存在于网络浏览器中,无论如何我可以做到这一点吗?
我的 java 应用程序能否启动一个本地主机站点,它可以与之通信以用作重定向 uri?如果可以,怎么做?
作为内部集成的桌面应用程序
在我们深入了解更多细节之前,请注意,如果您计划仅将桌面应用程序用于您自己的 Slack 工作区,则有一个简单的解决方案。在这种情况下,您的应用不需要支持完整的 Oauth 工作流程,您有两个选择:
- 通过管理页面将您的应用安装为 internal integration 您的 Slack 应用程序,然后将令牌复制并粘贴到您的桌面应用程序
- 为您的 Slack 工作区创建一个 legacy token,然后复制并粘贴到您的桌面(不推荐)
我还想预先澄清一下,您的应用程序只需要 运行 Oauth 进程一次即可将其安装到新的 Slack 工作区中。生成的令牌没有到期日期,无需刷新。
用于多个 Slack 工作区的桌面应用程序
如果您计划将桌面应用分发到多个 Slack 工作区,您将需要支持完整的 Oauth 安装过程。
Slack 使用的是 Oauth 2.0,所以原则上,这个旧 Oauth wiki article 的所有标准答案也应该适用于 Slack。
但是,由于您不能假设您的用户的本地计算机可以从 Internet 访问(例如,重定向回本地 Web 服务器将不起作用,因为 Slack 很可能无法访问它),您需要一个 运行 在网络服务器上并且可以从 Internet 访问的网络助手应用程序。
这个 Web 帮助应用程序基本上是一个小型网站,它执行完整的 Oauth 舞蹈,用于安装到新的 Slack 工作区中。您的应用程序可以打开浏览器 window 并重定向到网络助手应用程序以启动登录过程。然后,您有两种基本方法来处理与桌面应用程序的连接:
- 向用户显示生成的令牌并要求他复制并粘贴 到您的桌面应用程序(简单方法)
- 将生成的令牌存储在您的网络助手应用程序中,并向您的桌面应用程序提供 API 以自动获取它。 (user-friendly 方法)
如果您正在寻找此类 Web 帮助应用程序的起点,请查看此 example PHP script 安装 Slack 应用程序。