使用服务帐户密钥对 Google Photos API 进行身份验证?

Posted

技术标签:

【中文标题】使用服务帐户密钥对 Google Photos API 进行身份验证?【英文标题】:Authenticating Google Photos API with Service Account Key? 【发布时间】:2019-08-25 12:09:41 【问题描述】:

像Google Photos API - authentication 这个问题一样,我对 Google Photos API 的身份验证感到好奇。其中一个问题的answers 指出

您需要配置 OAUth 2.0 凭据(客户端 ID 和机密),而不是 API 密钥。更多详细信息在此处的开发者文档中:https://developers.google.com/photos/library/guides/get-started#request-id

Google 照片库 API 代表用户行事,这就是您需要通过 OAuth 2.0 进行身份验证的原因。作为此请求的一部分,您还需要指定用户接受的范围,请参阅此页面了解更多详细信息:https://developers.google.com/photos/library/guides/authentication-authorization

我的问题是我正在尝试构建一个 NodeJs 应用程序,该应用程序应该为另一个前端应用程序提供来自谷歌照片的图像。我想使用静态“服务帐户密钥”(来自https://console.developers.google.com/apis/credentials)验证我的后端应用程序:

我真的找不到以前做过这件事的人。这让我觉得我可能正在尝试构建一些不可能的东西? google-api-nodejs-client 也不支持 Photos API。

问题: 如果我登录到我的谷歌帐户并创建一个“服务帐户密钥”(我希望我的后端提供我的照片),是否可以从我的 NodeJs 后端对照片 API 进行身份验证?如何? (我不是在寻找完整的解决方案,只是一个提示)

【问题讨论】:

【参考方案1】:

确实没有人这样做过,因为谷歌根本不支持它:

在this关于谷歌照片API的页面中,声明:

Library API 不支持服务帐户;要使用此 API,用户必须登录有效的 Google 帐户。

【讨论】:

以上是关于使用服务帐户密钥对 Google Photos API 进行身份验证?的主要内容,如果未能解决你的问题,请参考以下文章

使用 JS 的服务帐户调用 Google bigquery

使用 Google Cloud 服务帐户是 VSTS 构建

加载服务帐户 Json 密钥文件

我在哪里检索 photo_reference 值以发出 Google Places Photos 请求?

将Google People API与服务帐户配合使用

使用 Json 文件进行 Google 服务帐户身份验证