Using Oauth and Gdata to Create a Simple Java Application

I try to create a simple application in the application engine, where users register through their Google account, and then add a calendar. And for this I use Java together with Eclipse. I found a simple code online:

public void doGet(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException { 
    // Create an instance of GoogleOAuthParameters 
    GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters(); 
    oauthParameters.setOAuthConsumerKey(CONSUMER_KEY); 
    oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET); 
    oauthParameters.setScope("http://docs.google.com/feeds/"); 
    GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper( 
            new OAuthHmacSha1Signer()); 
    // Remember the token secret that we stashed? Let get it back 
    // now. We need to add it to oauthParameters 
    String oauthTokenSecret = (String) req.getSession().getAttribute( 
    "oauthTokenSecret"); 
    oauthParameters.setOAuthTokenSecret(oauthTokenSecret); 
    // The query string should contain the oauth token, so we can just 
    // pass the query string to our helper object to correctly 
    // parse and add the parameters to our instance of oauthParameters 
    oauthHelper.getOAuthParametersFromCallback(req.getQueryString(), 
            oauthParameters); 
    try { 
        // Now that we have all the OAuth parameters we need, we can 
        // generate an access token and access token secret. These 
        // are the values we want to keep around, as they are 
        // valid for all API calls in the future until a user revokes 
        // our access. 
        String accessToken = oauthHelper.getAccessToken(oauthParameters); 
        String accessTokenSecret = oauthParameters.getOAuthTokenSecret(); 
        // In a real application, we want to redirect the user to a new 
        // servlet that makes API calls. For the safe of clarity and simplicity, 
        // we'll just reuse this servlet for making API calls. 
        oauthParameters = new GoogleOAuthParameters(); 
        oauthParameters.setOAuthConsumerKey(CONSUMER_KEY); 
        oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET); 
        // This is interesting: we set the OAuth token and the token secret 
        // to the values extracted by oauthHelper earlier. These values are 
        // already in scope in this example code, but they can be populated 
        // from reading from the datastore or some other persistence mechanism. 
        oauthParameters.setOAuthToken(accessToken); 
        oauthParameters.setOAuthTokenSecret(accessTokenSecret); 
        oauthParameters.setOAuthCallback("http://www.facebook.com"); 
        oauthHelper.getUnauthorizedRequestToken(oauthParameters); 
        // Create an instance of the DocsService to make API calls 
        DocsService client = new DocsService("Malware Inc."); 
        // Use our newly built oauthParameters 
        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()) { 
            resp.getWriter().println(entry.getTitle().getPlainText()); 
        } 
    } catch (OAuthException e) { 
        // Something went wrong. Usually, you'll end up here if we have invalid 
        // oauth tokens 
        resp.getWriter().println("Here is the problem"); 
        //Server shows 500 problem 
    } catch (ServiceException e) { 
        // Handle this exception 
    } 
} 

I registered my application and added the KEY and Secret function above, but when I deploy it in the application engine, it gives a 500 server error.

Can someone post a simple java program that uses gdata and oauth to register a Google user and print contacts on the screen? Thank you -Manoj

+3
source share
1 answer

, , .

, OAuth.

, :

  • Google.

3 .

, , , Google Google, , URL- -.

, , http://yourapp.com/RequestAccess

        public void doGet(HttpServletRequest req, HttpServletResponse resp) {            

        GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();

        oauthParameters.setOAuthConsumerKey(YOUR_CONSUMER_KEY);
        oauthParameters.setOAuthConsumerSecret(YOUR_CONSUMER_SECRET);
        OAuthHmacSha1Signer signer = new OAuthHmacSha1Signer();

        GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper(signer);
        oauthParameters.setScope(FEED_SCOPE);

        try {
            oauthHelper.getUnauthorizedRequestToken(oauthParameters);

            //GET THE UNAUTHORIZED TOKENS
            String oauthRequestToken = oauthParameters.getOAuthToken();
            String oauthTokenSecret = oauthParameters.getOAuthTokenSecret();

            //SAVE THEM SOMEWEHERE (FOR EXAMPLE IN THE SESSION LIKE YOU DID)

            //  ....

            //GET THE AUHTORIZATION URL
            String authorizationURL= oauthHelper.createUserAuthorizationUrl(oauthParameters);

            // YOU NOW HAVE THE AUHTORIZATION URL,  SEND IT BACK TO THE USER SOMEHOW
            // ( FOR EXAMPLE BY REDIRECTING THE REQUEST TO THAT URL)

            // ...
        } catch (OAuthException e1) {
            LOGGER.error("error while getting unauthorized request token '{}' ", e1);
        }
        }

URL- acces, , .

Google OAuth

, !

+1

All Articles