Google API - 如何获取用户的别名电子邮件?

问题描述 投票:0回答:2

问题

使用 Google Apps OAuth 进行身份验证,如何检索用户的电子邮件别名?

我似乎找不到任何关于如何执行此操作的 API 文档。必要的范围是什么以及获取该信息的正确调用是什么?

为什么

假设我有一位用户 Alice 邀请

[email protected]
使用该应用程序。不幸的是,
[email protected]
实际上是
[email protected]
的别名。当 Bob 使用 Google OAuth 登录服务时,Google 告诉我他的电子邮件地址是
[email protected]
。现在,当我想将 Bob 识别为同一个帐户时,我不小心为 Bob 创建了两个帐户。

google-api google-oauth google-apps google-domain-api
2个回答
0
投票

范围

https://www.googleapis.com/auth/user.emails.read
授予权限“查看并下载您的所有 Google 帐户电子邮件地址”。用户将看到如下所示的同意屏幕:

Consent Screen Overview

Consent Screen Detail

此范围属于 People API。在开始之前,请确保您的项目已启用 People API,否则您将收到 403 错误,例如“People API 之前未在项目 some-project-id 中使用或已禁用”:

Google People API Enable button hovered 然后,一旦获取了具有此范围的令牌,就可以使用

People API people.get

端点。使用 people/me 访问当前经过身份验证的配置文件的信息。

请求示例:

curl -H "Authorization: Bearer some-token-from-oauth-flow" https://people.googleapis.com/v1/people/me?personFields=emailAddresses

响应示例:(

资源) { "resourceName": "people/some-id-here", "etag": "some-etag-here", "emailAddresses": [ { "metadata": { "primary": true, "verified": true, "source": { "type": "DOMAIN_PROFILE", "id": "some-id-here" }, "sourcePrimary": true }, "value": "[email protected]" }, { "metadata": { "source": { "type": "DOMAIN_PROFILE", "id": "some-id-here" } }, "value": "[email protected]" } ] }



-1
投票
文档

。您需要使用的范围是: https://www.googleapis.com/auth/user.addresses.read 这将返回用户的所有电子邮件地址,并告诉您哪个是主要的。

© www.soinside.com 2019 - 2024. All rights reserved.