当前位置: 首页 > 知识库问答 >
问题:

谷歌OAuth API获取用户的电子邮件地址?

林念
2023-03-14

我正在用自己的谷歌账号玩谷歌的OAuth 2.0游乐场,但我似乎无法用游乐场恢复我的Gmail地址。

我使用的范围是:

email profile https://www.googleapis.com/auth/plus.login

但当我调用API时:

https://www.googleapis.com/oauth2/v2/userinfo

共有3个答案

张博涛
2023-03-14

您需要添加https://www.googleapis.com/auth/userinfo.email范围或替换https://www.googleapis.com/oauth2/v2/userinfo用它。如果您使用的是他们提供的HTML示例,那么可以列出多个用空格分隔的作用域。

<span
  class="g-signin"
  data-callback="signInCallback"
  data-clientid="{{ plus_id }}"
  data-cookiepolicy="single_host_origin"
  data-requestvisibleactions="http://schemas.google.com/AddActivity"
  data-scope="https://www.googleapis.com/auth/plus.login   
  https://www.googleapis.com/auth/userinfo.email">
</span>
狄奕
2023-03-14

从2017年起:使用电子邮件范围。请参阅授权API请求。

此电子邮件范围相当于并取代https://www.googleapis.com/auth/userinfo.email范围

耿联
2023-03-14

更新:2018年12月

12月20日,谷歌宣布谷歌API将于2019年3月被拒绝,2019年1月底开始出现间歇性故障。作为plus的一部分。人get终结点已弃用并计划终止。

userinfo终结点已取消推荐(请参阅说明),并应假设提供信息

  1. 请求https://developers.google.com/identity/sign-in/web/devconsole-project范围和
  2. 您可以请求电子邮件字段

澄清: 24 Jan 2019

谷歌记录了用户信息(v2)终结点已被弃用,但后来将其更改为“弃用,但保持向后兼容”。

当前文档讨论通过当前支持的openid方法获取个人资料和电子邮件信息。这包括按照OpenID Connect的要求,使用其发现文档中指定的“userinfo”endpoint。

目前,该URL是https://openidconnect.googleapis.com/v1/userinfo,但这在过去已经发生了变化,发现文档位于https://accounts.google.com/.well-known/openid-configuration是URL使用的权威来源。

因此,需要明确的是:

  • 保留旧的userinfo URL是为了向后兼容

无论如何,任何东西的plus版本(如下所述)都已被弃用并计划删除。

原始答案

你在做什么以及如何去做,这里有很多问题。

首先,https://www.googleapis.com/oauth2/v2/userinfoendpoint已弃用,计划于2014年9月删除。它已经开始不一致地工作——所以不要使用它。

正如@Abraham所指出的,您将在https://www.googleapis.com/plus/v1/people/me使用people.get终结点。这将为您提供包含地址数组的电子邮件字段。在你的情况下,可能只有一个有一种类型的“账户”。

 类似资料:
  • 我是谷歌脚本的新手,不知道是否有人能帮我。 我有一个共享的谷歌电子表格,基本上是用新的员工信息更新行。 我希望只有当插入这些新员工行时,特定列(比如F列)上的“ABC”字符串匹配时,才会触发电子邮件。基本上,电子邮件触发器会让我们的团队知道如何设置新的员工帐户。 有人能帮我吗?我不知道如何进行字符串匹配,也不知道如何让它专门发送给固定的电子邮件收件人。我已经安装了Python、gspread和gd

  • 我有一个电子表格,存储工作表1上的任务。当一个任务完成时,就会发送一封电子邮件。表2保存了发送到、抄送和回复的特定电子邮件地址。我可以循环浏览第2页并获得每一栏的电子邮件地址。我想能够得到这些电子邮件地址到我的选项发送电子邮件在MailApp。无法从工作表2的循环中获取电子邮件地址。请参阅下面的代码。任何帮助都将不胜感激。

  • 我在我的系统中使用谷歌广告API PHP库。但是我没有在这里提供的API列表中找到以下2个APIhttps://developers.google.com/google-ads/api/docs/account-management/create-account: API,以查明用户是否已经存在使用电子邮件的谷歌广告帐户?如果找到,则返回其10位数的客户ID。 我在几个网站上见过同样的过程。每当用

  • 试图修改标签。 我的代码: 错误消息: 服务gmail抛出异常:Google。GoogleApiException:Google。Apis。请求。Request estError权限不足[403]错误[消息[权限不足]位置[-]原因[不足权限]域[全局]] 在Google。Apis。请求。ClientServiceRequest1

  • 我们使用谷歌应用程序进行工作,我们希望能够跟踪用户的gmail活动,比如他们收到多少封电子邮件,回复多少封电子邮件 我曾经使用Google Admin Reports API:Users Usage Report来获取统计数据,但结果不准确,并且它不会返回详细的消息列表。 谷歌管理控制台上的电子邮件日志搜索正是我想要的,但我不确定是否有电子邮件日志搜索API可用,以便我们可以循环搜索所有用户并检索