授权范围

Google Photos API 包含多个用于访问媒体内容和影集的范围。根据开发者请求的范围,不同调用返回的响应会有所不同。

您的应用发送到 Google Photos API 的每个请求都必须包含授权令牌。Google 也可通过此令牌来识别您的应用。

关于授权协议

您的应用必须使用 OAuth 2.0 向请求授权,其他任何授权协议均不受支持。如果您的应用使用使用 Google 账号登录,系统会代您执行授权方面的某些操作。

使用 OAuth 2.0 向请求授权

所有发送至 Google 相册 API 的请求都必须由已通过身份验证的用户授权。

根据您所开发的应用的类型,OAuth 2.0 的具体授权流程可能会有所不同。下面是适用于所有应用类型的大致流程:

  1. 开发应用时,您需要使用 Google API 控制台注册该应用。然后,Google 会提供您稍后需要用到的信息,例如客户端 ID 和客户端密钥。
  2. 在 Google API 控制台中激活 Google 相册 API。(如果 API 控制台中未列出该 API,请跳过这一步。)
  3. 当您的应用需要访问用户数据时,它会请求 Google 提供特定范围的访问权限。
  4. Google 会向相应用户显示权限请求页面,让用户授权您的应用请求他们的某些数据。
  5. 待该用户同意后,Google 会为您的应用提供一个时效很短的访问令牌
  6. 您的应用会请求获取用户数据,并在请求中附上该访问令牌。
  7. 如果 Google 确定您的请求及令牌有效,就会返回您所请求的数据。

有些流程还包含其他步骤,例如使用刷新令牌获取新的访问令牌。如需详细了解适用于各类应用的不同流程,请参阅 Google 的 OAuth 2.0 文档

以下是 Google 相册 API 的 OAuth 2.0 范围信息:

Picker API 范围

范围 含义
https://www.googleapis.com/auth/photospicker.mediaitems.readonly

有权创建、获取和删除会话,以及列出会话的媒体内容。

Library API 范围

范围 含义
https://www.googleapis.com/auth/photoslibrary.readonly

https://www.googleapis.com/auth/photoslibrary.sharing

https://www.googleapis.com/auth/photoslibrary
https://www.googleapis.com/auth/photoslibrary.appendonly

仅拥有写入权限

上传字节、创建媒体内容、创建影集和添加扩充内容的权限。仅允许在用户媒体库和应用创建的影集中创建新的媒体内容。

https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata

读取开发者创建的媒体内容和影集的权限。有关详情,请参阅访问媒体内容列出媒体库内容、影集和媒体内容

photoslibrary.appendonly 范围一起请求。

https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata

仅拥有修改权限。

为开发者创建的影集和媒体内容更改以下详细信息的权限:

要通过 OAuth 2.0 请求访问权限,您的应用既需要授权范围信息,也需要 Google 在您注册应用时提供的信息(如客户端 ID 和客户端密钥)。

提示:Google API 客户端库可帮您处理部分授权流程,并且支持多种编程语言;有关详情,请参阅库和示例页面

选择范围

通常情况下,请尽可能选择最准确的范围,并避免请求应用不需要的范围。用户更乐意向描述清晰的有限范围授予访问权限。如果用户不信任您的应用,并且不了解该应用需要媒体内容信息的原因,他们便会犹豫是否要授予其大量访问权限。

逐步请求范围

遵循授权流程的最佳实践,您的应用应仅在需要时请求范围。请勿在登录时预先为您的应用请求所有范围。相反,您应提供理由并在上下文中发出请求。根据用户体验指南和最佳做法,在发送通知并征求用户意见时,请明确说明您会如何处理用户数据,以及用户如何通过授予访问权限获益。

服务账号

Google 相册 API 不支持服务账号。您的应用必须使用其他可用的 OAuth 2.0 流程,例如适用于网络服务器应用的 OAuth 2.0 或适用于移动和桌面应用的 OAuth 2.0。