通过Java中的OAuth2.0检索Google授权码

时间:2013-10-24 17:29:04

标签: java oauth-2.0 authorization google-api-java-client

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

您需要提供callbackURL。我建议使用像Scribe这样的java库来实现这个目标 - 有一个很好的getting started page和大量的例子。

编辑1
以下是设置回调网址的示例

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网址。用户批准您的应用后,嵌入式浏览器将重定向到您的回调URI。您需要检测到这一点,然后提取回调中包含的oauth信息。

我从未通过桌面应用程序完成此操作(它始终位于servlet / jsp - web应用程序中)。但是如果你在windows中搜索如何检测URI的重定向,希望你能找到一些例子。