2012-07-01 4 views
0
내가 구글 API 불구하고 읽고있다

을 토큰에 전화가로 말한다 :구글 OAuth2를 -

"첫 번째 단계는 최종 사용자의 자격 증명이 있는지 확인하기 위해 알려진 사용자 ID를 기반으로 loadCredential (String)를 호출하는 것입니다 이미 알려진 경우 newAuthorizationUrl()을 호출하고 최종 사용자의 브라우저를 인증 페이지로 이동하면 웹 브라우저는 "코드"쿼리 매개 변수를 사용하여 리디렉션 URL로 리디렉션 한 다음 액세스 토큰을 요청할 수 있습니다 newTokenRequest (String)를 사용하여 마지막으로 createAndStoreCredential (TokenResponse, String)을 사용하여 보호 된 리소스에 액세스하기위한 자격 증명을 저장하고 얻습니다. "

그래서 내 코드에 코드 줄을 넣고 올바른 가져 오기 문을 사용하더라도 오류가 발생합니다. 누군가가 구글에 대한 OAuth2를 구현의 좋은 예가있는 경우,

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

: "형식 불일치가 자격 증명에서 AuthorizationCodeRequestUrl로 변환 할 수 없습니다"를 게시하시기 바랍니다. 내가 이해할 수있는 유일한 링크 (아래 링크 참조)는 가치가 떨어지고, 최신 버전을 사용하고 싶습니다. https://developers.google.com/google-apps/tasks/oauth-authorization-callback-handler

+0

developers.google.com에 대한 귀하의 링크는 더 이상 사용되지 않습니다. – Amber

답변

0

여기는 내가 사용한 코드입니다. 완전한 예는 아니지만 누군가에게 아이디어를 제공해야합니다.

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());