2010-03-20 18 views
4

J'essaie d'utiliser GData pour récupérer l'adresse e-mail, le vrai nom et l'URL du profil de l'utilisateur qui vient d'autoriser mon site en utilisant Google OAuth.Comment récupérer l'adresse email d'un utilisateur avec GData?

Nous savons comment le demander en utilisant le flux OpenID de Google, mais le flux OpenID a la limitation stricte que nous devons demander un domaine d'utilisateur Google Apps avant de savoir où les envoyer pour se connecter. ou même AuthSub), l'utilisateur est invité à se connecter à quel compte Google.

Répondre

1

Toujours pas clair que c'est possible, mais nous travaillons maintenant autour de lui en utilisant le flux OpenID. Avec l'ajout de leur flux de connexion universel, nous n'avons plus de raison d'éviter leur flux OpenID.

1

Si vous récupérez le flux de contacts de l'utilisateur, vous pouvez accéder au champ authors qui vous donne votre email et votre nom. En outre, champ id du flux semble être l'adresse e-mail de la personne qui possède les contacts.

Un exemple (Scala) avec des noms changé, en supposant que l'utilisateur de AuthSub (désolé, je ne l'ai pas migré mon code à OAuth) où vous avez déjà une session token:

scala> val contacts_service = new ContactsService("foo") 
contacts_service: com.google.gdata.client.contacts.ContactsService = [email protected] 

scala> contacts_service.setAuthSubToken(token, null) 

scala> val feedUrl = new URL("https://www.google.com/m8/feeds/contacts/default/full?max-results=10000") 
feedUrl: java.net.URL = https://www.google.com/m8/feeds/contacts/default/full?max-results=10000 

scala> val feed = contacts_service.getFeed(feedUrl, classOf[ContactFeed]) 
feed: com.google.gdata.data.contacts.ContactFeed = {ContactFeed [email protected]} 

scala> feed.getId 
res13: java.lang.String = [email protected] 

scala> val p = feed.getAuthors.head 
p: com.google.gdata.data.Person = [email protected] 

scala> p.getEmail 
res14: java.lang.String = [email protected] 

scala> p.getName 
res15: java.lang.String = Example User