Java 无法重定向到DropBox登录页面

Java 无法重定向到DropBox登录页面,java,rest,web-applications,dropbox,Java,Rest,Web Applications,Dropbox,我正在我基于Java的应用程序中集成DropBox。在独立模式下执行以下代码时,工作正常 private String APP_KEY = "APP_KEY"; private String APP_SECRET = "APP_SECRET"; private AccessType ACCESS_TYPE = AccessType.APP_FOLDER; AppKeyPair appKeys = new AppKeyPair(APP_KEY, APP_SECRET); WebAuthSessi

我正在我基于Java的应用程序中集成DropBox。在独立模式下执行以下代码时,工作正常

private String APP_KEY = "APP_KEY";
private String APP_SECRET = "APP_SECRET";
private AccessType ACCESS_TYPE = AccessType.APP_FOLDER;

AppKeyPair appKeys = new AppKeyPair(APP_KEY, APP_SECRET);
WebAuthSession session = new WebAuthSession(appKeys, ACCESS_TYPE);


WebAuthInfo authInfo = session.getAuthInfo("callbackURL");

RequestTokenPair pair = authInfo.requestTokenPair;
String url = authInfo.url;
Desktop.getDesktop().browse(URL(url).toURI());
session.retrieveWebAccessToken(pair);

AccessTokenPair tokens = session.getAccessTokenPair();
在独立模式下,这段代码将我重定向到DropBox登录页面,用户将授权应用程序,然后控件返回到“callbackURL”中提到的页面


当我实际运行我的站点时,我使用相同的补丁。我有一个链接,上面写着“立即链接到DropBox”。单击该链接后,控件通过REST调用传递给服务器,以执行上述代码。但是它被卡在了代码行上

Desktop.getDesktop().browse(URL(url).toURI());
正确传递获取authInfo()所需的所有参数时


我无法确定我错在哪里。任何帮助都将不胜感激。

因为您是一个web应用程序,您不能调用
Desktop.getDesktop()
(这仅在桌面应用程序的上下文中才有意义)

您应该使用类似于
response.sendRedirect(“callbackURL”)的方式将用户重定向到Dropbox(即在语句
authInfo.URL
中接收到的URL)
或在客户端使用JavaScript设置链接的
href

然后,Dropbox会将用户重定向回您的应用程序(即您指定为“callbackURL”的URL),在那里您应该有一个servlet来解析Dropbox的响应(-查看“返回”部分),然后获取访问令牌()。

(此时,您可能希望将其与其他必要数据一起存储在某个位置(例如,在会话范围内)。

“我在实际运行我的站点时使用相同的修补程序。”和“Desktop.getDesktop()”?您是从桌面应用程序还是从Web应用程序(即servlet)调用这段代码。我试图在上面的Java语句中找到我是否需要做的任何更改,但是没有那么多的help.AFAIK,您无法在web应用程序的上下文中调用
Desktop.getDesktop()
(在beast中,您将指的是服务器自己的桌面)。重定向用户(类似于:
response.sendRedirect(“callbackURL”);
)怎么样?好的。我会试试看,然后告诉你。你在这方面有什么进展吗?如果您能够解决您的问题,请考虑将答案张贴并标记为“接受”,以便将来面对类似问题的人能够很容易地找到解决方案。(如果您仍在寻找解决方案,请告知我们您的尝试和结果,也许有人能够提供有用的建议。)