2010-03-20 133 views
4

我正嘗試使用GData檢索剛剛使用Google OAuth授權我的網站的用戶的電子郵件地址,真實姓名和個人資料網址。如何使用GData檢索用戶的電子郵件地址?

我們知道如何使用Google的OpenID流來請求它,但是OpenID流具有嚴重的侷限性,我們必須要求Google Apps用戶的域名,然後才能知道要將它們發送到哪裏登錄。至少使用OAuth(甚至AuthSub),用戶會被提示要求登錄哪個Google帳戶。

回答

1

仍然不清楚這是否可行,但我們現在通過使用OpenID流程解決此問題。隨着他們的通用登錄流量的增加,我們不再有理由避免他們的OpenID流量。

1

如果您獲取用戶的聯繫人摘要,則可以訪問authors字段,該字段會爲您提供電子郵件和姓名。此外,Feed的id字段似乎是擁有聯繫人的人的電子郵件地址。

一個例子(Scala中)與名稱改變,假設的AuthSub的用戶(對不起,我沒有遷移我的代碼到OAuth),您已經有了一個會話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 
相關問題