通过 API 访问 Google 照片的长期令牌?

Posted

技术标签:

【中文标题】通过 API 访问 Google 照片的长期令牌?【英文标题】:Long lived token for accessing Google Photos via API? 【发布时间】:2021-06-03 03:45:42 【问题描述】:

我们需要将我们的服务与 Google 相册集成,从而使用户可以从我们网站内的 Google 相册中选择图像。到目前为止,我的理解是,为了使图像在我们端可供用户选择,他必须通过 OAuth UI 明确批准这一点(如果我错了,请纠正我)。

他批准后,我们​​将获得刷新令牌,可以生成访问令牌供我们使用。

我的问题如下:

是否有可能用户只进行一次 OAuth UI 审批操作,之后我们可以使用该令牌而无需打扰用户再次审批?

这些代币的有效期是多少?是否可以获得不会过期的令牌?因为查看 Facebook API,短期令牌会在 2 小时后过期,而长期令牌会在 2 个月后过期。

基本上我们的用例如下:

我们让用户将 Google 相册连接到我们的网站,他可以将这些照片用于多个用例。为了让我们渲染完整的照片,我们需要通过 id 引用该图像并调用 Google Photos API 来下载图像并在我们的网站上渲染它。我在想的另一个选择是 - 存储我们最初在用户进行 OAuth 手动批准时需要的图像的 baseUrl,因此之后不需要批准,因为我们的服务只是后端并且进行服务到服务的通信。

在此先感谢您并致以最诚挚的问候

【问题讨论】:

【参考方案1】:

您是正确的,您需要使用 Oauth2 来请求访问用户数据。这会给你一个刷新令牌。

刷新令牌大部分不会过期。只要用户不直接通过他们的 Google 帐户删除您的访问权限,并且只要您每六个月至少使用一次刷新令牌,您就可以使用了。但是,您的代码应该能够处理无效的刷新令牌,然后在他们下次出现时询问用户。

【讨论】:

我明白了,这意味着一旦用户通过 UI 批准 OAuth2 访问,我们应该很好地使用刷新令牌来完成工作,而无需打扰用户再次批准它。但是,如果超过6个月没有使用或者用户手动撤销,我们是否需要再次通过UI进行用户审批OAuth2流程? 是的,你知道了

以上是关于通过 API 访问 Google 照片的长期令牌?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Firebase Google 身份验证获取带有刷新令牌的 YouTube 数据 API 访问令牌?

仅使用访问令牌使用 Google API 发送电子邮件

无需身份验证令牌即可访问 Google 电子表格 API

新帐户上的 Google API(分析)访问令牌和刷新令牌错误

Rails Google Client API - 无法用刷新令牌交换访问令牌

Google 刷新访问令牌(离线访问)api 中的“unsupported_grant_type”