使用Google API获取用户的所有电子邮件地址

时间:2014-01-01 16:06:41

标签: email gmail google-api google-api-client

对于我自己的Gmail帐户,我有多个与之关联的电子邮件地址。例如,我的大学电子邮件地址与我的Gmail有关联,我可以从我的Gmail发送电子邮件,就像它们来自我的大学电子邮件地址一样。

我正在阅读Google API,我发现我可以获取用户的Gmail地址,但我是否还可以获得与其Gmail帐户相关联的任何其他电子邮件地址?

当用户登录我的网站时,我想向他们提供与gmail相关的电子邮件地址列表,让他们选择他们想要使用的地址。

编辑:谢谢大家的答案,但我认为他们中的任何一个都没有回答这个问题。我一直在玩Google's OAuth playground。奇怪的是,我可以获得大量非常个人的信息(用户联系人列表甚至收到的电子邮件),但我无法获得用户的替代电子邮件地址。

4 个答案:

答案 0 :(得分:4)

您的描述有点模糊。您是在谈论发送别名帐户还是备用电子邮件帐户?

发送别名

无论哪种方式,您都可以在此处与发送方帐户进行互动:Manage Send-as Alias

通过Admin SDK发送替代电子邮件

联合登录

此外,我不确定您是如何尝试将此功能合并到您的网站中的,但我建议您检查的其他区域是Federated Login for Google Account Users。这也可能为您提供所需的功能。

  

使用联合登录(也称为联合身份),您的网站   或应用程序可以允许访问者使用他们的Google用户登录   账户。联合登录使用户不必独立设置   登录不同网站的帐户,让您免于执行任务   实施登录认证措施。

答案 1 :(得分:1)

问题问题已经有一段时间了。您可以使用Google People API获取用户的主电子邮件地址和别名。这是documentation。您需要使用的范围是:https://www.googleapis.com/auth/user.addresses.read

这将返回用户的所有电子邮件地址,并告诉您哪个是主要的。

答案 2 :(得分:0)

如果您使用OAuth让您的用户使用他们的Google帐户登录(使用或不使用G +),系统会提示用户(由Google)选择他们希望授权您的应用程序使用的帐户: https://developers.google.com/accounts/docs/OAuth2Login

因此,为了直接回答您的问题,我不知道返回该用户列表的API - 但是您不需要这样做,Google会在返回您的应用程序之前处理此问题。

如果您的用户已经登录,并且您希望他们能够更改他们正在使用的Google帐户,我相信可以再次提示他们选择他们感兴趣的帐户(搜索{{ 1}}在上面的链接上。)

答案 3 :(得分:0)

这是可能的。但是,自Google宣布the deprecation of their Google+ People API以来,情况已经发生了变化,很多人都习惯使用as discussed here来获取用户的所有电子邮件地址。当前投票最多的答案是404。

Google Plus People API替换

Google已将Google Plus People API /plus/v1/people/me替换为https://developers.google.com/people/,并且您想使用https://www.googleapis.com/auth/user.emails.read个人资料范围Demo on dbfiddle进行替换。架构是不同的,因此您还需要更改映射。

如果您的应用已使用旧/plus/v1/people/me中的以下范围,则当您切换到新的API时,您的用户将不必重新同意

email
profile
https://www.googleapis.com/auth/plus.login
https://www.googleapis.com/auth/plus.me
https://www.googleapis.com/auth/plus.profile.agerange.read
https://www.googleapis.com/auth/plus.profile.emails.read
https://www.googleapis.com/auth/plus.profile.language.read