Google 人 API(如何使用 API 密钥进行身份验证)

Google People API (howto auth with API Key)

有人可以向我解释一下 Google 人 API 是如何工作的吗。

我想创建一个从给定数据集自动创建联系人的 CronJob。 到目前为止没问题,但不幸的是我无法通过 API 密钥对自己进行身份验证。

当我尝试验证时总是显示此消息
Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.

这里描述了它应该如何工作: https://developers.google.com/people/v1/how-tos/authorizing

在这里你可以试试这个方法(不幸的是它在这里也行不通): https://developers.google.com/people/api/rest/v1/people/createContact

旁节点:我使用PHP :)

问题:

您正在尝试为某人添加联系人。这是对个人隐私数据的请求,访问它需要授权:

If the request requires authorization (such as a request for an individual's private data), then the application must provide an OAuth 2.0 token with the request.

API 键只能用于访问 public 数据。在这种情况下,您需要通过 OAuth 2.0 进行身份验证。根本没有办法解决它。

解决方案:

看看下面的例子,它展示了如何完成 OAuth 过程:PHP Quickstart

避免用户交互:

因为在这种情况下,您希望避免用户交互,您唯一的选择是使用已被授予 domain-wide authority 的服务帐户。这可以用于代表域中的任何用户,而无需该用户提供明确授权。

因此,您需要成为 G Suite 域管理员才能使用它,并且应为其执行此应用程序的所有用户都应该是该域的一部分。

如果不是这种情况(如果您没有域,或者并非所有用户都属于该域),则需要用户交互才能使用 People API 访问个人数据。那是因为用户必须授权应用程序代表他们访问数据。

参考: