2009-11-08 3 views
1

내가 OAuth를, 를 사용하여 구글 문서 도구에서 사용자의 문서 데이터를 가져하려고하지만 난 그것을 수행하는 방법을 이해할 수 없다
- oauth_verifier
의 목적은 무엇 - 액세스 토큰 비밀을 얻는 방법 ?
- 아래 DocsService를 사용하려고하면 "서버 오류"가 발생합니다.
- 이에 대한 명확한 지침이 있습니까? 나는 어떤 ATM을 찾을 수 없습니다 ..
의 OAuth 문제 (애플리케이션 엔진)

String oauth_verifier = req.getParameter("oauth_verifier"); 
    String oauth_token = req.getParameter("oauth_token"); 
    String oauthtokensecret = req.getParameter("oauth_token_secret"); 

    GoogleOAuthParameters oauthparam = new GoogleOAuthParameters(); 
    oauthparam.setOAuthConsumerKey("consumer key"); 
    oauthparam.setOAuthConsumerSecret("secret"); 
    oauthparam.setOAuthToken(oauth_token); 
    oauthparam.setOAuthTokenSecret(oauthtokensecret); 
    oauthparam.setOAuthVerifier(oauth_verifier); 

    OAuthHmacSha1Signer signer = new OAuthHmacSha1Signer(); 
    GoogleOAuthHelper oauthhelper = new GoogleOAuthHelper(signer); 
    String accesstoken = ""; 
    String accesstokensecret = ""; 

    try { 
     oauthhelper.getUnauthorizedRequestToken(oauthparam); 
     accesstoken = oauthhelper.getAccessToken(oauthparam); 
     accesstokensecret = oauthparam.getOAuthTokenSecret(); 

// DocsService 클라이언트 = 새로운 DocsService ("yourcompany와-YourAppName-V1"); ... 그들은 OAuth를 특정하고 구글 관련되지 이후

답변

0

oauth_token_secret을 가져 와서 나중에 다시 사용해야한다고 밝히고 있습니다. 그래서 우리는 URL에 oauth_callback로 리디렉션 된 사용자 액세스 권한을 부여 후 다음

oauthhelper.getUnauthorizedRequestToken(oauthparam); 
requesturl = oauthhelper.createUserAuthorizationUrl(oauthparam); 
OAuthTokenSecret.tokenSecret = oauthparam.getOAuthTokenSecret(); 
resp.sendRedirect(requesturl); 

(구글 로그인 페이지로 사용자를 리디렉션하기 전에)과 :

oauthparam.setOAuthToken(oauthtoken); 
oauthparam.setOAuthVerifier(oauthverifier); 
oauthparam.setOAuthTokenSecret(OAuthTokenSecret.tokenSecret); 
oauthhelper.getAccessToken(oauthparam); // access token and access token secret are saved in oauthparam. 
// access google service.. 
GoogleService googleService = new GoogleService("cp", "test222"); 
googleService.setOAuthCredentials(oauthparam, signer); 
BaseFeed resultFeed = googleService.getFeed(feedUrl, Feed.class);