用于通过 API 访问 Google 相册的长寿令牌?

问题描述

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

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

我的问题如下:

是否有可能用户只做一次 OAuth UI 批准的操作,然后我们可以使用该令牌而无需打扰用户再次批准?

这些代币的存活时间是什么时候?是否有可能获得不会过期的令牌?因为查看 Facebook API,短期令牌会在 2 小时后过期,而长期令牌会在 2 个月后过期。

基本上我们的用例如下:

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

提前致谢并致以最诚挚的问候

解决方法

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...