【问题标题】:Get all email addresses of user using Google API使用 Google API 获取用户的所有电子邮件地址
【发布时间】:2014-01-19 03:54:37
【问题描述】:

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

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

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

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

【问题讨论】:

  • Directory API: User Aliases 无法访问您想要的内容?
  • @JSuar,看起来很有希望。让我看看。
  • @JSuar,我不确定。这似乎是特定于 Google Apps 域的,不适用于普通的 gmail 帐户。
  • @JSuar,这是我想做的,但它看起来仅限于 Google Apps 脚本,所以我无法将它用于登录我的网站的用户。感谢所有帮助我的努力。我怀疑 Google 目前不支持我想要的。

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


【解决方案1】:

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

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

【讨论】:

  • 嗨 Siva,您能否提供一个简短的 API 调用示例?从您提供的链接中我看不出来。
【解决方案2】:

这是可能的。然而,自从谷歌宣布the deprecation of their Google+ People API 以来,这种情况发生了变化,很多人用它来获取用户的所有电子邮件地址。当前投票最多的答案现在转到 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 个人资料范围 as discussed here 作为替代。架构不同,因此您还需要更改映射。

如果您的应用已使用旧 /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

【讨论】:

    【解决方案3】:

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

    以别名发送

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

    通过 Admin SDK 的备用电子邮件

    联合登录

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

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

    【讨论】:

      【解决方案4】:

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

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

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

      【讨论】:

      • 谢谢,但这不是我想要的。您可以将多个电子邮件地址关联到一个 gmail 帐户。我想获取与一个 google 帐户关联的电子邮件地址列表,这与拥有多个 google 帐户的用户不同。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多