0

我正在开发一个桌面项目,该项目需要使用 OAuth2.0 对 Google Calendar API 进行 Google 授权。使用的语言是java。

目前要授权项目,我必须使用 java.swt.Desktop.getDesktop().browse(url) 打开浏览器,单击“接受”按钮,复制重定向页面中的授权代码并将其粘贴到我的应用程序中。并且用户必须手动关闭网页。挺麻烦的。

是否有更好、更用户友好的方法来实现此授权过程?我想要实现的最终过程只是应用程序打开授权页面,用户点击“接受”,页面自动关闭,软件获得授权。我在其他应用程序中看到过这种程序。只是我不知道如何实现这一点。

提前致谢。

4

1 回答 1

0

您需要提供一个回调URL。我建议使用像Scribe这样的 java 库来完成此任务 - 有一个很好的入门页面和大量示例。

编辑 1
这是一个设置回调 url 的示例

String apiKey = "your_app_id";
String apiSecret = "your_api_secret";
OAuthService service = new ServiceBuilder()
                          .provider(FacebookApi.class)
                          .apiKey(apiKey)
                          .apiSecret(apiSecret)
                          .callback("myApp://oauthcallback")
                          .build();

您需要在桌面应用程序中打开嵌入式浏览器,然后转到 OAuthService 提供的 oauth url。一旦用户批准了您的应用程序,嵌入式浏览器将被重定向到您的回调 URI。您需要检测到这一点,然后提取回调中包含的 oauth 信息。

我从来没有通过桌面应用程序做到这一点(它总是在 servlet/jsp - web 应用程序中)。但是,如果您搜索如何在 Windows 中检测 URI 上的重定向,希望您能找到一些示例。

于 2013-10-25T01:59:40.627 回答