对于我自己的gmail帐户,我有多个与之关联的电子邮件地址。例如,我有一个来自我的大学的电子邮件地址与我的gmail关联,我可以从我的gmaail发送电子邮件,就好像它们来自我的学校电子邮件地址一样。
我正在阅读谷歌API,我发现我可以获得用户的gmail地址,但我也可以获得与他们的gmail帐户相关的任何其他电子邮件地址吗?
当用户登录我的网站时,我想向他们提供一个与gmail相关的电子邮件地址列表,并让他们选择要使用的地址。
编辑:谢谢大家的回答,但我认为他们中没有一个能回答这个问题。我一直在玩谷歌的OAuth游戏。奇怪的是,我可以获得很多非常私人的信息(用户的联系人列表,甚至收到的电子邮件),但我无法获得用户的替代电子邮件地址。
您的描述有点模糊。你说的是以别名帐户还是备用电子邮件帐户发送?
以别名发送
无论哪种方式,您都可以在此处与"作为帐户发送"交互:管理"作为别名发送">
通过Admin SDK的备用电子邮件
- 至于备用电子邮件帐户,可以通过以下方式访问:
- 管理SDK:https://developers.google.com/admin-sdk/directory/v1/guides/manage-user-aliases?hl=en
- 谷歌应用程序脚本:https://developers.google.com/apps-script/reference/gmail/gmail-app#getAliases()
- 此处提供有关帐户工作方式的其他信息。
- 与您的帐户关联的电子邮件地址
- 备用电子邮件地址和其他谷歌产品
- 将其他电子邮件帐户连接到您的Google帐户
联合登录
此外,我不确定你是如何将这一功能融入你的网站的,但我建议你查看的另一个领域是谷歌账户用户的联合登录。这也可能为您提供所需的功能。
使用联合登录(也称为联合身份),您的网站或者应用程序可以允许访问者使用他们的谷歌用户登录账户联合登录使用户无需单独设置登录不同网站的帐户,并将您从以下任务中解放出来实现登录身份验证措施。
这个问题已经有一段时间没有提出了。您可以使用Google People API获取用户的主要电子邮件地址和别名。这是文件。您需要使用的范围是:https://www.googleapis.com/auth/user.addresses.read
这将返回用户的所有电子邮件地址,并告诉您哪个是主电子邮件地址。
如果您使用OAuth让您的用户使用他们的Google帐户(使用或不使用G+)登录,则用户将(由Google)提示选择他们希望授权您的应用程序使用的帐户:https://developers.google.com/accounts/docs/OAuth2Login
因此,为了直接回答你的问题,我不知道有API可以返回用户列表-但你不需要,谷歌会在返回你的应用程序之前处理好这一点。
如果你的用户已经登录,并且你希望让他们能够更改他们正在使用的谷歌帐户,我相信可以再次提示他们选择他们感兴趣的帐户(在上面的链接上搜索select_account
)。
这是可能的。然而,自从谷歌宣布弃用他们的Google+People API后,情况发生了变化,许多人都用它来获取用户的所有电子邮件地址。目前投票最多的答案是404。
Google Plus People API替换
Google已经用https://developers.google.com/people/
替换了Google Plus People API/plus/v1/people/me
,您需要使用这里讨论的https://www.googleapis.com/auth/user.emails.read
配置文件范围作为替换。模式不同,因此您还需要更改映射。
如果您的应用程序已使用旧/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