1.1:OAuth 帐号关联

简介和业务影响


为了利用 Google API,您必须通过 OAuth 向您的集成授予必要的商家访问权限,以便商家授权您使用非付费商品详情和付费广告。

替代 OAuth

您的应用必须使用 OAuth 2.0 来向请求授权。不支持其他授权协议。

用户体验指南


目标:让商家获得授权,可将其数据用于 Google 应用。

设计原则:在适当的时间请求适当的权限。 如果商家不授予权限,可以在不引起中断的情况下失败。

系统会提示商家提供访问权限。查看有关如何向商家展示这些说明的示例:

oauth_1

oauth_2

商家完成这些初始步骤后,可能会出现三种结果:

结果 1:如果商家同意所有权限

oauth_3

如果商家提供完整权限,他们会勾选所有复选框,并提示继续完成初始配置流程。

结果 2:如果商家不同意使用 Google Ads

oauth_4

商家选中所有复选框,但与 Google Ads 相关的权限除外。用户继续完成初始配置流程,稍后,当他们创建新的 Google Ads 帐号或关联现有帐号时,系统会再次提示他们授予权限:

oauth_5 oauth_6

结果 3:如果未勾选商品数据或网站验证,商家将无法继续参与

oauth_7

oauth_8

oauth_9

oauth_10

上述所有选项会导致相同的错误消息:

oauth_11

技术指南


选择使用 OAuth 2.0 进行授权请求

您可以通过以下两种方法选择商家身份验证方法

适用于非服务账号的 OAuth 2.0(强烈推荐) 适用于服务帐号的 OAuth 2.0
OAuth 2.0 客户端可标识应用,并允许最终用户向您的应用授予对其 Google 数据的有限访问权限。它允许您的应用代表最终用户访问 Google Cloud API。

列出的事件导致访问令牌失效,应在代码中对此进行解释:

● 用户已撤消访问权限
● 用户已更改密码
● 授予的刷新令牌数已超出限制
● 6 个月内未使用刷新令牌
服务账号是一种特殊的 Google 账号,应用可以使用这类账号使用 OAuth 2.0 以编程方式访问 Google API。服务账号使用 OAuth 2.0 流程,无需人工授权。而会使用只有您的应用可以访问的密钥文件。

注意:使用服务帐号进行身份验证的应用只能访问自己的 Merchant Center 帐号。如果您要编写的第三方应用需要访问客户的 Merchant Center 账号,请改为参阅“授权请求”指南。

注意:必须有一个 Cloud 项目,并且最多可创建 100 个服务账号。请参阅文档

设置 OAuth 流程

通过 OAuth 2.0 授权框架,第三方应用可代表资源所有者获取对 HTTP 服务的有限访问权限,方法是在资源所有者与 HTTP 服务之间编排审批互动,或允许第三方应用自行获取访问权限。

您的应用将访问受保护的(非公开)数据,因此您需要一个 OAuth 2.0 客户端 ID。Google API 使用 OAuth 2.0 协议进行身份验证和授权。Google 支持常见的 OAuth 2.0 场景,例如 Web 服务器、已安装的应用和客户端应用的场景。

了解详情

将 OAuth 用于 Content API 购物的注意事项:

  1. 确保已将 access_type 设为 offline:访问令牌会定期过期,并成为相关 API 请求的无效凭据。

  2. 刷新访问令牌:如果您请求了与令牌关联的离线访问权限(了解详情),则可以在不提示用户授予权限的情况下(包括当用户不存在时)执行此操作。

  3. 在库中实现 OAuth:强烈建议您使用 Google API 客户端库

  4. 范围:您需要请求商家授予您对其 Google 账号的读写权限(范围为 Google Merchant Center OAuth 范围:https://www.googleapis.com/auth/content)。

  5. 您可以使用 OAuth 获取关键的用户个人资料信息

要用于集成的范围

根据您计划为商家构建的集成类型,我们建议您此时请求所有必要的范围。

计划 范围 哪种格式是所要求的范围
Content API https://www.googleapis.com/auth/content 非付费商品详情
网站验证 https://www.googleapis.com/auth/siteverification 非付费商品详情和付费广告
Ads https://www.googleapis.com/auth/adwords 非付费商品详情和付费广告

验证商家是否已授予 OAuth 访问权限

商家必须在 OAuth 同意流程中勾选复选框,才能向您授予对特定范围的访问权限:如果缺少必需的范围,请向商家说明为何需要这些范围,并再次请求权限(了解详情)。如果不具有上述所有权限,则会导致商家无法全面完成初始配置。

access

调用以下 API 端点以检查授予的范围:

https://www.oauth2.googleapis.com/token

该网址会返回以下信息:

  • access_token
  • 授予用户的
  • 令牌过期前的时间

request

敏感范围和 OAuth 验证流程

OAuth API 使用的某些范围被视为敏感范围,需要进行验证流程。如需了解其他信息和示例,请参阅适用于 Content API 的 OAuth

  1. 符合政策的敏感应用范围:需要确保您的应用符合 Google 的 API 服务用户数据政策。您还需要同意 API 服务条款

  2. 确认您的应用不属于验证要求的例外情况中列出的任何用例。

  3. 使用 Search Console 验证项目的已授权网域的所有权。使用具有 Project Owner 或 Cloud Console 项目的 Project Editor 角色的帐号。

  4. 确保 OAuth 权限请求页面上的所有品牌信息均一致且有效,例如向用户显示的项目名称、支持电子邮件地址、首页网址和隐私权政策网址能够准确反映应用的身份。

  5. 在验证流程中请求应用的敏感范围:按照流程,该流程要求填写表单、提供理由并发送视频。