/java/sample/oauth/TwoLeggedOAuthExample.java
http://gdata-java-client.googlecode.com/ · Java · 116 lines · 47 code · 21 blank · 48 comment · 4 complexity · c30ed5d2b0ef5df4420df0c57f3fcc82 MD5 · raw file
- /* Copyright (c) 2008 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package sample.oauth;
- import com.google.gdata.client.GoogleService;
- import com.google.gdata.client.authn.oauth.GoogleOAuthHelper;
- import com.google.gdata.client.authn.oauth.GoogleOAuthParameters;
- import com.google.gdata.client.authn.oauth.OAuthHmacSha1Signer;
- import com.google.gdata.client.authn.oauth.OAuthSigner;
- import com.google.gdata.data.BaseEntry;
- import com.google.gdata.data.BaseFeed;
- import com.google.gdata.data.Feed;
- import java.net.URL;
- /**
- * Sample application demonstrating how to do 2-Legged OAuth in the Google Data
- * Java Client. See the comments below to learn about the details.
- *
- *
- */
- public class TwoLeggedOAuthExample {
- public static void main(String[] args) throws Exception {
- ////////////////////////////////////////////////////////////////////////////
- // STEP 1: Gather the user's information
- ////////////////////////////////////////////////////////////////////////////
- // This step collects information from the user, such as the consumer key
- // and which service to query. This is just a general setup routine, and
- // the method by which you collect user information may be different in your
- // implementation.
- UserInputHelper inputController =
- new TwoLeggedOAuthUserInputHelper();
- UserInputVariables variables = inputController.getVariables();
- ////////////////////////////////////////////////////////////////////////////
- // STEP 2: Set up the OAuth objects
- ////////////////////////////////////////////////////////////////////////////
- // You first need to initialize a few OAuth-related objects.
- // GoogleOAuthParameters holds all the parameters related to OAuth.
- // OAuthSigner is responsible for signing the OAuth base string.
- GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
- // Set your OAuth Consumer Key (which you can register at
- // https://www.google.com/accounts/ManageDomains).
- oauthParameters.setOAuthConsumerKey(variables.getConsumerKey());
- // Initialize the OAuth Signer. 2-Legged OAuth must use HMAC-SHA1, which
- // uses the OAuth Consumer Secret to sign the request. The OAuth Consumer
- // Secret can be obtained at https://www.google.com/accounts/ManageDomains.
- oauthParameters.setOAuthConsumerSecret(variables.getSignatureKey());
- OAuthSigner signer = new OAuthHmacSha1Signer();
- // Finally create a new GoogleOAuthHelperObject. This is the object you
- // will use for all OAuth-related interaction.
- GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper(signer);
- ////////////////////////////////////////////////////////////////////////////
- // STEP 3: Make a request to Google
- ////////////////////////////////////////////////////////////////////////////
- // Set the scope for this particular service.
- oauthParameters.setScope(variables.getScope());
- // Append the "xoauth_requestor_id" parameter to the feed url. This
- // parameter indicates which user you are loading the data for.
- String feedUrlString = variables.getFeedUrl();
- feedUrlString += "?xoauth_requestor_id="
- + variables.getVariable("xoauth_requestor_id");
- URL feedUrl = new URL(feedUrlString);
- System.out.println("Sending request to " + feedUrl.toString());
- System.out.println();
- GoogleService googleService =
- new GoogleService(variables.getGoogleServiceName(),
- "2-legged-oauth-sample-app");
- // Set the OAuth credentials which were obtained from the steps above.
- googleService.setOAuthCredentials(oauthParameters, signer);
- // Make the request to Google
- BaseFeed resultFeed = googleService.getFeed(feedUrl, Feed.class);
- System.out.println("Response Data:");
- System.out.println("=====================================================");
- System.out.println("| TITLE: " + resultFeed.getTitle().getPlainText());
- if (resultFeed.getEntries().size() == 0) {
- System.out.println("|\tNo entries found.");
- } else {
- for (int i = 0; i < resultFeed.getEntries().size(); i++) {
- BaseEntry entry = (BaseEntry) resultFeed.getEntries().get(i);
- System.out.println("|\t" + (i + 1) + ": "
- + entry.getTitle().getPlainText());
- }
- }
- System.out.println("=====================================================");
- }
- }