借助 Data Portability API,您可以构建应用,以请求用户授权将数据的副本从 Google 服务移至您的应用。这有助于实现数据可移植性,并便于切换服务。
如需了解用户如何分享数据,请参阅与第三方分享您的数据。
前提条件
应用必须先获得 Google 的批准,然后才能发布。
您还应验证 Data Portability API 是否可供您所在地区的用户使用。如需查看受支持的国家/地区列表,请参阅“与第三方分享您的数据”页面上的常见问题。
开发者工作流程
以下是创建使用 Data Portability API 的应用的步骤。
 
 
- 为用户实现 OAuth 意见征求流程。在此示例中,用户提供对 YouTube 视频数据的访问权限。 - 用户点击导入 YouTube 视频,然后登录其 Google 账号。 
- 应用会将用户转到 OAuth 意见征求网址。请注意,此示例网址已简化,缺少一些参数: - https://accounts.google.com/o/oauth2/v2/auth?scope=https://www.googleapis.com/auth/dataportability.myactivity.youtube
- 用户点击 OAuth 权限请求页面上的下一步,同意分享其数据,并提供账号访问权限。 
- 用户选择要分享的数据以及应用可以访问这些数据的时长(对其数据的一次性访问或 30 天或 180 天的基于时间的访问),然后点击继续。 - 注意:在 OAuth 令牌到期前最多 90 天,用户可以选择在 OAuth 令牌到期前续订对其数据的访问权限。如果用户没有在 90 天内到期的镜重,系统不会显示“续订”按钮。 - 注意:如果用户想在一次性访问权限和基于时间的访问权限之间切换,则需要在撤消现有授权后重新完成意见征求流程。您可以使用 - resetAuthorization()撤消授予的权限,用户也可以在其“关联”页面上撤消授予的权限。
- 系统会将用户重定向到应用。 
- 开发者为用户获取 OAuth 令牌。 
 
- 您的应用使用包含此 OAuth 范围的附加 OAuth 令牌调用 - InitiatePortabilityArchive(resources = ["myactivity.youtube"]):- https://www.googleapis.com/auth/dataportability.myactivity.youtube- 此调用会启动创建数据归档的流程,并响应作业 ID 以及用户是授予了一次性访问权限还是基于时间的访问权限。 - 注意:一次性访问权限是指每个范围一次导出。如果用户授予多个镜,您可以选择为令牌授权的每个资源分别创建作业。 
- 您的应用使用包含以下 OAuth 范围的附加 OAuth 令牌调用 - GetPortabilityArchiveState(job_id):- https://www.googleapis.com/auth/dataportability.myactivity.youtube- 您可以多次调用此方法来检索归档作业的状态。该方法会返回作业的状态。如果状态为 - COMPLETE,则表示归档已准备就绪,并且提供了签名的 Cloud Storage 网址。请注意,完成归档请求所需的时间可能从几分钟到几小时不等,具体取决于数据的大小。
- 使用签名网址下载数据归档文件。 
- 如果用户授予一次性访问权限,您可以使用附加的 OAuth 令牌调用 - ResetAuthorization(),以重置耗尽的资源并移除所有 OAuth 意见征求。
- 如果用户授予基于时间的访问权限,您可以在用户同意的有效期内每 24 小时导出一次资源。 
如需详细了解如何使用 Data Portability API 方法,请参阅调用 Data Portability API 方法。
用户如何与 Data Portability API 应用互动
此图显示了用户如何与集成了 Data Portability API 的应用互动。
 
 
- 首先,系统会向用户显示用于检索其数据的选项。 
- 接下来,用户登录其 Google 账号。 
- 然后,当系统提示用户分享数据时,用户点击下一步;当系统提示用户接受隐私权政策时,用户点击我了解。 
- 然后,系统会向用户显示 OAuth 权限请求页面,用于允许应用访问其数据。此处的选项与您配置的 OAuth 范围一致。用户选择要分享的数据以及应用可以访问这些数据的时长(对数据的一次性访问或 30 天或 180 天的基于时间的访问),然后点击继续。 
- 允许访问后,系统会开始导入数据。请求可能需要几分钟到几小时才能完成,具体取决于数据的大小。