有没有办法使用OAuth2使用Slack对Java桌面应用程序进行身份验证?我正在尝试关注Slack's guide。
我遇到了问题,因为它说你在应用程序的重定向uri中获得了访问令牌。但是,由于我正在制作的应用程序不存在于Web浏览器中,无论如何我能做到这一点吗?
我的java应用程序可以启动它可以与之通信的localhost站点以用作重定向uri吗?如果是这样,怎么样?
答案 0 :(得分:1)
桌面应用作为内部集成
在我们了解更多详细信息之前,请注意,如果您计划仅将自己的桌面应用程序用于自己的Slack工作区,则可以使用简单的解决方案。在这种情况下,您的应用程序不需要支持完整的Oauth工作流程,您有两种选择:
我还想提前澄清一下,您的应用只需运行Oauth进程ONCE即可将其安装到新的Slack工作区中。生成的令牌没有到期日期,也不能刷新。
多个Slack工作区的桌面应用
如果您计划将桌面应用程序分发到多个Slack工作区,则需要支持完整的Oauth安装过程。
Slack正在使用Oauth 2.0,因此原则上这个较旧的Oauth wiki article的所有标准答案也适用于Slack。
但是,由于您无法假设您的用户的本地计算机可以从Internet访问(例如,重定向回本地Web服务器将无法工作,因为Slack很可能无法访问它),您将需要一个在Web服务器上运行并可从Internet访问的Web帮助应用程序。
这个网络助手应用程序基本上是一个小型网站,它为安装过程执行完整的Oauth舞蹈,进入新的Slack工作区。您的应用程序可以打开浏览器窗口并重定向到Web帮助应用程序以启动登录过程。然后,您有两种基本方法来处理连接回桌面应用程序:
如果您正在寻找此类网络助手应用的起点,请查看此example PHP script以安装Slack应用。