Hello!

Can the cause of the problem be that I attempt to access two different
Google services (Tasks and Calendar) with different scopes using ONE
access token?

TIA

Dmitri

On Jul 1, 5:47 pm, DP <[email protected]> wrote:
> Hello!
>
> I get the error
>
> com.google.gdata.util.AuthenticationException: Unknown authorization
> header
>      at
> com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:
> 600) ~[gdata-core-1.0.jar:na]
>      at
> com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:
> 563) ~[gdata-core-1.0.jar:na]
>      at
> com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:
> 552) ~[gdata-core-1.0.jar:na]
>      at
> com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:
> 530) ~[gdata-core-1.0.jar:na]
>      at
> com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:
> 535) ~[gdata-core-1.0.jar:na]
>
> when trying to access the Google Calendar data via their API.
>
> Here is what happens before that error.
>
> 1) I authenticate with Google:
>
> final AccessTokenResponse response =
>           new GoogleAuthorizationCodeGrant(httpTransport,
>                     jsonFactory,
>                     clientId, clientSecret, authorizationCode,
>                     redirectUrl).execute();
>
> final GoogleAccessProtectedResource accessProtectedResource =
>           new GoogleAccessProtectedResource(
>                     response.accessToken, httpTransport, jsonFactory,
>                     clientId, clientSecret,
>                     response.refreshToken);
>
> LOGGER.debug("response.accessToken: {}", response.accessToken);
>
> this.oauthAccessToken = response.accessToken;
>
> ...
>
> 2) I read some data via the tasks API:
>
>             this.service =
>                     new Tasks(httpTransport, accessProtectedResource,
>                             jsonFactory);
>             this.service.setApplicationName(this.applicationName);
>
> This seems to work.
>
> 3) Then I try to read data from the Google Calendar API:
>             final OAuthHmacSha1Signer signer = new
> OAuthHmacSha1Signer();
>
>             final GoogleOAuthParameters  oauth = new
> GoogleOAuthParameters ();
>
>             oauth.setOAuthConsumerKey("myapp.com");
>             oauth.setOAuthConsumerSecret(CLIENT_SECRET); // Client
> secret from "Google API access" page, "Client secret" entry
>             oauth.setOAuthToken(this.oauthAccessToken); // Access
> token from step 1
>             oauth.setOAuthTokenSecret(aAuthorizationCode);
>             // aAuthorizationCode is taken from the callback URL.
>             // 
> Forhttp://myapp.com/oauth2callback?code=4/uy8Arb4bhRPwWYSr3QwKPt9lIZkt
>             // aAuthorizationCode is equal to "4/
> uy8Arb4bhRPwWYSr3QwKPt9lIZkt" (without quotes)
>
>             oauth.setScope(SCOPE_CALENDAR); 
> //https://www.google.com/calendar/feeds/
>
>             final CalendarService calendarService =
>                     new CalendarService(APPLICATION_NAME);
>
>             calendarService
>                     .setOAuthCredentials(oauth, signer);
>
>             LOGGER.debug("calendarService: {}", calendarService);
>
>             final URL feedUrl =
>                     new URL(
>                             "http://www.google.com/calendar/feeds/
> default/allcalendars/full");
>             final CalendarFeed resultFeed =
>                     calendarService.getFeed(feedUrl,
> CalendarFeed.class);
>
> At the last line (calendarService.getFeed...) the aforementioned
> exception occurs.
>
> I have following questions:
>
> 1) Is my call
>
> oauth.setOAuthConsumerKey
>
> correct?
>
> I. e. is the "consumer key" equal to "Product name" in the Google API
> console, or to "Client ID" field (value is something like
> 42912397129473.apps.googleusercontent.com)
>
> 2) Is the setOAuthTokenSecret correct? I. e. is it the code that I
> get, when Google redirects the user back to my app?
>
> 3) If questions 2 and 3 were answered with yes, what else can be the
> cause of my problem?
>
> Thanks
>
> Dmitri
>
> P. S.: Previously, I could access Google calendar with simple access
> (i. e. with Google user name and password). However, this is not an
> option now because users of my app will not want to give away their
> Google password.
>
> P. P. S.: You can earn StackOverflow reputation points by answering
> the question 
> there:http://stackoverflow.com/questions/6550143/google-calendar-api-and-oa...

-- 
You received this message because you are subscribed to the Google
Groups "Google Calendar Data API" group.
To post to this group, send email to
[email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://code.google.com/apis/calendar/community/forum.html

Reply via email to