Skip to content Skip to sidebar Skip to footer

Is There A Way To Get Your Email Address After Authenticating With Gmail Using Oauth?

In a Python web application, I am able to connect to Gmail using OAuth and IMAP. OAuth uses whichever Google account you're currently signed into simply and asks you to grant acces

Solution 1:

What you're after is the Google Contacts API. If you're authorizing via OAuth you're probably currently asking for permission to access the gmail scope:

https://mail.google.com/mail/feed/atom

You will also need to ask for permission for the contacts scope:

https://www.google.com/m8/feeds/

Once you have that, you can make a GET request similar to the following:

https://www.google.com/m8/feeds/contacts/default/full?max-results=1

This should return a bunch of xml, here are some relevant bits:

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:gContact="http://schemas.google.com/contact/2008" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;CEcMRX0_eCp7ImA9WhdRF00.&quot;">
<id>joebloggs@gmail.com</id>
...
<author>
  <name>Joe Bloggs</name>
  <email>joebloggs@gmail.com</email>
</author>
...
</feed>

As you can see you can find the authorized users' email in a couple of places.

If you're using OAuth you might also want to have a look at the Google OAuth playground, I've found it very handy: http://googlecodesamples.com/oauth_playground/index.php. If you decide to use OAuth2 there is equivalent tool at https://code.google.com/oauthplayground


Solution 2:

skorks answer works just fine but you should use the correct API. By adding additional scope of

https://www.googleapis.com/auth/userinfo.email

You do it "the right way"!

I wrote a complete article about this with example code: http://www.hackviking.com/2013/10/python-get-user-info-after-oauth/ Code available here: https://code.google.com/p/google-api-oauth-demo/


Post a Comment for "Is There A Way To Get Your Email Address After Authenticating With Gmail Using Oauth?"