为应用配置 OAuth

如需为应用配置 OAuth,您需要设置 OAuth 工作流,并启用 Data Portability API OAuth 范围。

设置 OAuth 工作流

如需为应用设置 OAuth 流程,请按照 Google 身份文档中的基本步骤操作。

大多数开发者使用服务器端 Web 应用流程来征求 OAuth 意见征求,但您也可以使用 JavaScript Web 应用流程移动和桌面应用流程

Data Portability API OAuth 范围

为 Data Portability API 应用配置 OAuth 时,请启用与您的应用相关的 Data Portability API OAuth 范围。某些镜重为 sensitiverestricted,需要满足额外的要求。

将 Data Portability API 权限范围添加到 OAuth 流程后,在某些情况下,用户可能会同意授予部分权限范围,但不同意授予所有权限范围。您的应用必须能够通过以下方式处理这些情况:

  • 允许导出部分数据
  • 通知用户未选择所有必要的范围(并妥善失败)
  • 向用户征求其余同意

请注意,根据用户的同意,您只能根据该特定同意导出一次数据。如需再次下载数据,您需要征得用户的新意见征求。

另请注意,在 OAuth 流程中,您的应用不知道是哪个 Google 账号用于提供同意。您的应用收到的 OAuth 令牌不透明。

如需了解用户如何分享数据,请参阅与第三方分享您的数据

镜重限制

本部分介绍了导致错误的镜重范围限制。

混合镜重

请求 Data Portability API 范围(例如 https://www.googleapis.com/auth/dataportability.*)时,不能混合使用其他范围(例如 https://www.googleapis.com/auth/userinfo.email)。以下是一个无效请求示例,其中受限部分已加粗体:

https://accounts.google.com/o/oauth2/v2/auth?
client_id=client_id&
redirect_uri=redirect_uri&
response_type=token&
scope=https://www.googleapis.com/auth/dataportability.myactivity.search+https://www.googleapis.com/auth/userinfo.email&
include_granted_scopes=false

之前授予的范围

在请求 DPAPI 镜重时,切勿设置 include_granted_scopes=true。以下是一个无效请求示例,其中受限部分已加粗体:

https://accounts.google.com/o/oauth2/v2/auth?
client_id=client_id&
redirect_uri=redirect_uri&
response_type=token&
scope=https://www.googleapis.com/auth/dataportability.myactivity.search&
include_granted_scopes=true

镜重心类别

如需查看 Data Portability API 支持的所有 OAuth 范围及其类别的列表,请参阅可用的 OAuth 范围。如需查看特定服务支持的所有资源组和 OAuth 范围的列表,请参阅该服务的架构参考页面