如需为应用配置 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 范围。某些镜重为 sensitive
和 restricted
,需要满足额外的要求。
将 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 范围的列表,请参阅该服务的架构参考页面。