Google Oauth2 - 致电令牌

时间:2012-07-01 23:47:47

标签: java google-app-engine jsp oauth-2.0

我正在通过Google API阅读并说:

“第一步是根据已知的用户ID调用loadCredential(String)来检查最终用户的凭据是否已知。如果没有,请调用newAuthorizationUrl()并将最终用户的浏览器定向到授权页面然后,Web浏览器将使用“code”查询参数重定向到重定向URL,然后可以使用newTokenRequest(String)来请求访问令牌。最后,使用createAndStoreCredential(TokenResponse,String)来存储和获取凭据访问受保护的资源。“

所以我将代码行放在我的代码中,即使使用正确的import语句也会失败。 “类型不匹配:无法从Credential转换为AuthorizationCodeRequestUrl”

AuthorizationCodeRequestUrl bob2 = AuthorizationCodeFlow.loadCredential("test"); or
GoogleAuthorizationCodeFlow bob2 = AuthorizationCodeFlow.loadCredential("test");

http://javadoc.google-oauth-java-client.googlecode.com/hg/1.7.0-beta/com/google/api/client/auth/oauth2/AuthorizationCodeFlow.html?is-external=true#loadCredential%28java.lang.String%29

此外,如果有人为Google的Oauth2实施做了任何好的示例,请发布它们。我能找到的唯一一个我能理解的(见下面的链接)似乎已经折旧了,我想使用最新版本。 https://developers.google.com/google-apps/tasks/oauth-authorization-callback-handler

1 个答案:

答案 0 :(得分:0)

sHere是我使用的代码。这不是一个完整的例子,但它应该给某人一个想法。

UserService userService = UserServiceFactory.getUserService();
    User user = userService.getCurrentUser();
   // response.getWriter().println(" User " + user);
    if (user == null) {
        response.sendRedirect(userService.createLoginURL(getFullRequestUrl(request)));


        return;
      }

然后我得到了授权码,无论如何。 (编码不好。)

response.sendRedirect(new GoogleAuthorizationRequestUrl(oauthProperties2.getClientId(), OAuthCodeCallbackHandlerServlet.getOAuthCodeCallbackHandlerUrl(request), oauthProperties2.getScopesAsString()).build());