1.1:OAuth 帐号关联
简介和业务影响
为了利用 Google API,您必须通过 OAuth 向您的集成授予必要的商家访问权限,以便商家授权您使用非付费商品详情和付费广告。
您的应用必须使用 OAuth 2.0 来向请求授权。不支持其他授权协议。
用户体验指南
目标:让商家获得授权,可将其数据用于 Google 应用。
设计原则:在适当的时间请求适当的权限。 如果商家不授予权限,可以在不引起中断的情况下失败。
系统会提示商家提供访问权限。查看有关如何向商家展示这些说明的示例:
商家完成这些初始步骤后,可能会出现三种结果:
结果 1:如果商家同意所有权限:
如果商家提供完整权限,他们会勾选所有复选框,并提示继续完成初始配置流程。
结果 2:如果商家不同意使用 Google Ads
商家选中所有复选框,但与 Google Ads 相关的权限除外。用户继续完成初始配置流程,稍后,当他们创建新的 Google Ads 帐号或关联现有帐号时,系统会再次提示他们授予权限:
结果 3:如果未勾选商品数据或网站验证,商家将无法继续参与
上述所有选项会导致相同的错误消息:
技术指南
选择使用 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 购物的注意事项:
确保已将 access_type 设为 offline:访问令牌会定期过期,并成为相关 API 请求的无效凭据。
刷新访问令牌:如果您请求了与令牌关联的离线访问权限(了解详情),则可以在不提示用户授予权限的情况下(包括当用户不存在时)执行此操作。
在库中实现 OAuth:强烈建议您使用 Google API 客户端库。
范围:您需要请求商家授予您对其 Google 账号的读写权限(范围为 Google Merchant Center OAuth 范围:https://www.googleapis.com/auth/content)。
您可以使用 OAuth 获取关键的用户个人资料信息。
要用于集成的范围
根据您计划为商家构建的集成类型,我们建议您此时请求所有必要的范围。
计划 | 范围 | 哪种格式是所要求的范围 |
---|---|---|
Content API | https://www.googleapis.com/auth/content |
非付费商品详情 |
网站验证 | https://www.googleapis.com/auth/siteverification |
非付费商品详情和付费广告 |
Ads | https://www.googleapis.com/auth/adwords |
非付费商品详情和付费广告 |
验证商家是否已授予 OAuth 访问权限
商家必须在 OAuth 同意流程中勾选复选框,才能向您授予对特定范围的访问权限:如果缺少必需的范围,请向商家说明为何需要这些范围,并再次请求权限(了解详情)。如果不具有上述所有权限,则会导致商家无法全面完成初始配置。
调用以下 API 端点以检查授予的范围:
https://www.oauth2.googleapis.com/token
该网址会返回以下信息:
- access_token
- 授予用户的
- 令牌过期前的时间
敏感范围和 OAuth 验证流程
OAuth API 使用的某些范围被视为敏感范围,需要进行验证流程。如需了解其他信息和示例,请参阅适用于 Content API 的 OAuth。
符合政策的敏感应用范围:需要确保您的应用符合 Google 的 API 服务用户数据政策。您还需要同意 API 服务条款。
确认您的应用不属于验证要求的例外情况中列出的任何用例。
使用 Search Console 验证项目的已授权网域的所有权。使用具有 Project Owner 或 Cloud Console 项目的 Project Editor 角色的帐号。
确保 OAuth 权限请求页面上的所有品牌信息均一致且有效,例如向用户显示的项目名称、支持电子邮件地址、首页网址和隐私权政策网址能够准确反映应用的身份。
在验证流程中请求应用的敏感范围:按照流程,该流程要求填写表单、提供理由并发送视频。