2011-12-29 6 views
1

에서 충돌 나는 다음과 같은 지침을 사용하여 oath2와 함께 사용하기에 내 웹 응용 프로그램을 등록 리디렉션 URI. 내가 다음에 JSON으로 제공하는 액세스 토큰을 요청하는 데 사용할 수있는 구글에서 요청 매개 변수에 코드를받을구글 OAuth2를 자바 연락처 서비스 문서

http://code.google.com/apis/accounts/docs/OAuth2WebServer.html

내가 따라 내 웹 응용 프로그램을 구성하면

: 라인을 따라 포맷 { "access_token은": "1/fFAGRNJru1FTz70BzhT3Zg" "expires_in"3920 "token_type": "베어러" }

,691 363,210

이 작업이 완료되면, I는 사용자를 대신하여 구글 API에 액세스하는 액세스 토큰을 사용할 수 있습니다

가 GET으로 https://www.googleapis.com/oauth2/v1/userinfo?access_token=1/fFBGRNJru1FQd44AzqT3Zg

이를 단순히 요청 매개 변수로 액세스 토큰을 전달하면됩니다 문서화 .

GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters(); 
oauthParameters.setOAuthConsumerKey(CONSUMER_KEY); 
oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET); 
oauthParameters.setOAuthToken(ACCESS_TOKEN); 
oauthParameters.setOAuthTokenSecret(TOKEN_SECRET); 

DocsService client = new DocsService("yourCompany-YourAppName-v1"); 
client.setOAuthCredentials(oauthParameters, new OAuthHmacSha1Signer()); 

URL feedUrl = new URL("https://docs.google.com/feeds/default/private/full"); 
DocumentListFeed resultFeed = client.getFeed(feedUrl, DocumentListFeed.class); 
for (DocumentListEntry entry : resultFeed.getEntries()) { 
    System.out.println(entry.getTitle().getPlainText()); 
} 

또는 RSA-SHA1

GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters(); 
oauthParameters.setOAuthConsumerKey(CONSUMER_KEY); 
oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET); 
oauthParameters.setOAuthToken(ACCESS_TOKEN); 

PrivateKey privKey = getPrivateKey("/path/to/your/rsakey.pk8"); // See above for the defintion of getPrivateKey() 

DocsService client = new DocsService("yourCompany-YourAppName-v1"); 
client.setOAuthCredentials(oauthParameters, new OAuthRsaSha1Signer(privKey)); 

URL feedUrl = new URL("https://docs.google.com/feeds/default/private/full"); 
DocumentListFeed resultFeed = client.getFeed(feedUrl, DocumentListFeed.class); 
for (DocumentListEntry entry : resultFeed.getEntries()) { 
    System.out.println(entry.getTitle().getPlainText()); 
} 
에 대해 다음 : 나는 (이 경우 구글 연락처) 자바 API를 사용하여에 이동할 때

그러나 나는 HMAC-SHA1에 대한 설명서에 다음을 얻을

우선, 자바 래퍼가 아닌 표준 http를 수행하는 경우 액세스 토큰 만 제공하면됩니다. 나는 뭔가를 놓치고 있습니까? 아니면이 추가 매개 변수가 어디에서 왔습니까? 주로 TOKEN_SECRET은 문서화에 언급이 없습니다. 또한 CONSUMER_KEY 및 CONSUMER_SECRET을 제공해야한다는 언급이 없습니다. 나는 그들이 클라이언트 ID와 클라이언트 비밀에 대한 대체 이름이라고 생각하고있다. 그러나 왜 나는 지금 그것을 제공해야하는지 이해하지 못한다. 마지막으로 Google API 콘솔을 사용하여 애플리케이션을 설정할 때 두 가지 다른 암호화 유형에 대한 언급이 없었으며 앞으로 어떤 것을 사용하려고합니까?

답변

1

표시 할 Java 코드 예제는 OAuth 2.0에서 단순화 된 일부 암호화 요구 사항이있는 OAuth 1.0 (OAuth 2.0 아님)을 기반으로합니다. Google Contacts API를 사용하는 경우 OAuth 1.0이 필요합니다. 참조 : http://code.google.com/apis/contacts/docs/3.0/developers_guide.html#GettingStarted

+1

Oauth를 사용하지 않는 링크 된 예제가 있습니다. Oauth 2.0을 사용하면 6 단계로 이동합니다. "응용 프로그램에서 사용자 데이터를 요청하고 액세스 토큰을 첨부하십시오. 요청. " 하지만 예제를 제공하지 않습니다. 그 아래에 Oauth의 예가 없습니다. 그것은 Oauth 2.0 페이지에서 나에게 지시, 그것은 단지 자바 API를하지 않고 직선 http를 사용하여 예제를 제공합니다. 다시 구글을 혼란스럽게합니다. – mogronalol