Hi All,

I am getting "com.google.gdata.util.AuthenticationException: Unknown
authorization header" exception while trying to get worksheet feed.
This code was working till today morning. Now suddenly its giving this
error. I am using 2-legged OAuth for authentication. This is the
sample code which throws me the exception. Till now it was working.
This application was on live for more than one year.


package com.cordys.external.google;

import java.io.IOException;
import java.net.URL;

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.client.spreadsheet.SpreadsheetService;
import com.google.gdata.data.spreadsheet.SpreadsheetEntry;
import com.google.gdata.data.spreadsheet.WorksheetFeed;
import com.google.gdata.util.ServiceException;

public class GoogleDocsManager
{
        private static final String CONSUMER_KEY = "";
        private static final String CONSUMER_SECRET = "";
        private static final String SPREADSHEETURL = "";
        private static final String USER_EMAIL_ID = "";
        private static final String CONSUMER_KEY = "";

        public static void main(String[] args) {
                try {
                        SpreadsheetService service = new 
SpreadsheetService("Cordys-
ProcessFactory-Test");
                        service.setHandlesCookies(false);

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

                        OAuthSigner signer = new OAuthHmacSha1Signer();

                        service.setOAuthCredentials(oauthParameters, signer);

                        String url = SPREADSHEETURL + "?xoauth_requestor_id=" +
USER_EMAIL_ID;

                        SpreadsheetEntry sEntry = service.getEntry( new 
URL(url),
SpreadsheetEntry.class );
                        WorksheetFeed feed = service.getFeed( 
sEntry.getWorksheetFeedUrl(),
WorksheetFeed.class );
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }
}

Now when I appended "?xoauth_requestor_id=" + USER_EMAIL_ID; to
sEntry.getWorksheetFeedUrl(), it started working. Now what should I
do? I should append this xoauth_requestor_id to even to the URLs
returned from Google. And whether someday it will start failing again?

How we will be able to know some changes are happening in Google side
and we need to update our code?

Thanks & Regards,
Sarath

Reply via email to