Thank you both, I figured it out.
Nikolay was correct in scrutinizing the use of "mail" aus AUTH_TOKEN_TYPE. 
There is some (old?) documentation that lists this as an alias for Gmail. 
This alias even returns a token, which in turn does not work when used to 
authenticate with the atom feed. 
So I switched the AUTH_TOKEN_TYPE to 
"oauth2:https://mail.google.com/mail/feed/atom/";. The token from that scope 
worked, right out of the box. 
The HTTP GET works like this now:

HttpClient client = new DefaultHttpClient();
HttpGet method = new 
HttpGet("https://mail.google.com/mail/feed/atom/unread";);
method.setHeader("Bearer " + token);
HttpResponse response;
try {
    response = client.execute(method);
} catch (Exception e) { }
// Now parse response as normal.


On Sunday, July 29, 2012 11:21:46 PM UTC-7, Nikolay Elenkov wrote:
>
> On Mon, Jul 30, 2012 at 2:32 PM, JP <> wrote: 
> > I am trying to authenticate with the Gmail atom feed using the 
> > authentication token of the Gmail account, obtained from AccountManager. 
> > 
> > I have no problem pulling the authentication token for a Google Account 
> > registered on the device, using AccountManagergetAuthToken() with the 
> > authTokenType "mail", but the authentication token does not register 
> with 
> > the atom feed. I've played with a few variations, but all I get is a 401 
> / 
> > Unauthorized response from Google. 
> > Basically, I've tried to GET 
> https://mail.google.com/mail/feed/atom/unread 
> > adding in a "Authorization" header item with "Bearer <authentication 
> > token>", but that didn't work. 
>
> Unless there is an official API, this may or may not work. 
>
> What you are getting from AccountManager is a ClientLogin token, but 
> you are trying to use is as if it were an OAuth token, that's probably 
> why you get an error. For ClientLogin you need something like: 
>
> Authorization: GoogleLogin auth=token 
>
> Again, this may or may not work, especially since ClientLogin is 
> deprecated. 
> I am also not sure whether the 'mail' token will work for the RSS feed. 
>
> To get an OAuth token, you need to use 'oauth2:scope' where scope 
> is the scope for the particular service, you need to find out what it is 
> for this feed. 
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to