我想构建一个小型 js 库,可以从我的帐户中读取特定相册并将其中的照片显示为幻灯片。
在本指南 ( https://developers.google.com/photos/library/guides/get-started ) 中,要访问我们需要 ClientID 和 Secret 的 API。有没有办法使用某种类型的公钥来访问 API 以进行只读访问?这样我(照片的提供者)就不必每次都登录了?
我想构建一个小型 js 库,可以从我的帐户中读取特定相册并将其中的照片显示为幻灯片。
在本指南 ( https://developers.google.com/photos/library/guides/get-started ) 中,要访问我们需要 ClientID 和 Secret 的 API。有没有办法使用某种类型的公钥来访问 API 以进行只读访问?这样我(照片的提供者)就不必每次都登录了?
Google Photos Library API 通过 OAuth2 用户身份验证使用。通过 API 发出的所有请求都是代表用户发出的。不支持公共 API 密钥或服务帐户。
OAuth 令牌在一定时间后过期,作为 OAuth 身份验证请求的一部分返回。过期后,您可以使用刷新令牌来检索新的访问令牌。如果您想在没有明确的交互式用户交互的情况下执行此操作,则需要授权您的应用程序进行离线访问。好消息是身份验证客户端库会为您处理这个问题。
如果您使用 Google 登录(例如在 Android 上),您可以检查用户是否已经使用 登录GoogleSignIn.getLastSignedInAccount(this)
,因此您无需再次提示访问。如果您想从后端发出这些离线请求,您还可以启用服务器端访问。
如果您使用任何Google OAuth 客户端库,则可以将“离线”参数指定为初始登录请求的一部分。例如,在 Java 中,您可以在创建期间设置访问类型:.setAccessType("offline")
on the GoogleAuthorizationCodeFlow.Builder
during creation。