如果您的应用请求获得使用 Google API 访问 Google 用户数据的权限,您可能需要先完成验证流程,然后才能将您的应用首次公开发布。
此要求是否适用于您的应用主要取决于以下两个因素:
- 您访问的用户数据类型:公开的个人资料信息、日历条目、云端硬盘中的文件、某些健康与健身数据等。
- 您需要的访问权限级别(只读、读取和写入等)。
使用 OAuth 2.0 从 Google 帐号获取访问其数据的权限时,您可以使用名为“scopes”的字符串来指定要代表其访问的数据类型。如果您的应用请求的范围被归类为敏感或受限,那么您可能需要完成验证流程,除非该应用的使用符合例外情况。
敏感范围的示例包括读取 Google 日历中存储的活动、在 Google 通讯录中存储新联系人或删除 YouTube 视频。如需详细了解可用范围及其分类,请参阅应用调用的 API 端点的参考文档,以及为该 API 发布的任何相关授权指南。
对于提供该功能所需的用户数据,您必须请求对用户数据拥有最小访问权限的范围。例如,如果 API 及其相关端点可以使用更窄的范围,则仅读取数据的应用不得请求对内容的读取、写入和删除权限。您只能按照该 API 的政策以及在应用的操作和隐私权政策中向用户传达的方式使用从 Google API 接收的数据。
请务必考虑在应用或任何需要新范围的新功能的发布计划中完成验证所需的时间。敏感范围验证流程通常需要 3-5 个工作日才能完成。请注意,您的应用可能有资格作为敏感范围验证请求的一部分完成品牌验证。
了解敏感范围
敏感范围需要经过 Google 审核,然后任何 Google 账号才能授予访问权限。Google Workspace 组织管理员可能会限制对敏感范围的访问权限,以防止使用组织未明确标记为受信任的 OAuth 客户端 ID 进行访问。
了解范围使用情况
- 查看您的应用使用或想要使用的范围。如需查找现有范围的使用情况,请检查应用的源代码,找出随授权请求发送的所有范围。
- 确定每个请求的范围对于应用功能的预期操作来说都是必要的,并使用提供该功能所需的最小权限。通常,Google API 会在产品的 Google 开发者页面上针对其端点提供参考文档,其中包括调用该端点所需的范围或其中的特定属性。如需详细了解应用调用的 API 端点的必要访问权限范围,请参阅这些端点的参考文档。
- 您只能按照该 API 的政策以及在应用的操作和隐私权政策中向用户传达的方式使用从 Google API 接收的数据。
- 如需详细了解每个范围(包括其可能的 sensitive or restricted 状态),请参阅 API 文档。
- 在 API Console的 OAuth 同意屏幕配置范围页面中声明您的应用使用的所有范围。您指定的范围会归入敏感类别或受限类别,以突出显示所需的任何其他验证。
- 找到与您的集成所用数据匹配的最佳范围,了解其使用情况,重新确认一切在测试环境中仍然正常运行,然后准备提交以进行验证。
![表格中显示了 API 的名称、一个敏感范围以及有关范围的说明。](https://developers.google.cn/static/identity/protocols/oauth2/images/examples/sensitive-scope-example.png?authuser=7&hl=bg)
准备验证的步骤
所有使用 Google API 请求访问数据的应用都必须执行以下步骤,才能完成品牌验证:
- 确认您的应用不属于验证要求的例外情况部分中所述的任何用例。
- 确保您的应用符合相关 API 或产品的品牌要求。例如,请参阅 Google 登录范围的品牌推广指南。
- 在 Google Search Console 中验证您对项目的授权网域的所有权。使用与您的 API Console 项目关联的 Google 帐号作为 Owner 或 Editor。
- 确保 OAuth 权限请求页面上的所有品牌信息(例如应用名称、支持电子邮件地址、首页 URI、隐私权政策 URI 等)都能准确反映应用的身份。
应用首页要求
请确保您的首页满足以下要求:
- 您的首页必须可供公开访问,而不是只能由网站的已登录用户访问。
- 您的首页与接受审核的应用的相关性必须明确。
- 指向您的应用在 Google Play 商店中的商品详情或其 Facebook 页面的链接不会被视为有效的应用首页。
应用隐私权政策链接要求
请确保您的应用的隐私权政策满足以下要求:
- 隐私权政策必须向用户显示,托管在应用首页所在的网域中,并且链接到 Google API Console的 OAuth 同意屏幕上。请注意,首页必须包含应用功能说明,以及指向隐私权政策和可选服务条款的链接。
- 隐私权政策必须披露您的应用访问、使用、存储或共享 Google 用户数据的方式。 您在使用 Google 用户数据时,必须严格遵循已发布的隐私权政策中披露的做法。
如何提交应用进行验证
Google API Console 项目用于组织您的所有 API Console 资源。项目包含一组有权执行项目操作的关联 Google 账号、一组已启用的 API,以及这些 API 的结算、身份验证和监控设置。例如,一个项目可以包含一个或多个 OAuth 客户端,配置 API 以供这些客户端使用,并配置一个 OAuth 同意屏幕,在用户授权访问您的应用之前向其显示该屏幕。
如果您有任何 OAuth 客户端尚未准备好投入生产环境,我们建议您将其从请求验证的项目中删除。您可以在 Google API Console中执行此操作。
若要提交以进行验证,请按以下步骤操作:
- 确保您的应用遵守 Google API 服务条款和 Google API 服务用户数据政策。
- 请确保项目关联账号的所有者和编辑者角色处于最新状态,并在 API Console中包含 OAuth 同意屏幕的用户支持电子邮件地址和开发者联系信息。这样可确保任何新要求都能通知团队中相应的成员。
- 前往 API ConsoleOAuth Consent Screen page。
- 点击 Project selector 按钮。
-
在随即显示的请选择:对话框中,选择您的项目。如果您找不到项目,但知道项目 ID,则可以在浏览器中构建以下格式的网址:
https://console.developers.google.com/apis/credentials/consent?project=[PROJECT_ID]
将 [PROJECT_ID] 替换为您要使用的项目 ID。
- 选择 Edit App 按钮。
- 在 OAuth 同意屏幕页面上输入必要的信息,然后选择保存并继续按钮。
- 使用添加或移除范围按钮来声明应用请求的所有范围。非敏感范围部分会预填充 Google 登录所需的一组初始范围。添加的范围被归类为非敏感 sensitive, or restricted。
- 提供最多三个链接,指向应用中相关功能的任何相关文档。
-
在后续步骤中,按照要求提供关于您应用的任何其他信息。
- Prepare a detailed justification for each requested sensitive scope, as well as an explanation
for why a narrower scope isn't sufficient. For example: "My app will use
https://www.googleapis.com/auth/calendar
to show a user's Google calendar data on the scheduling screen of my app. This lets users manage their schedules through my app and sync the changes with their Google calendar." -
Prepare a video that fully demonstrates how a user initiates and grants access to the requested scopes and shows, in detail, the usage of the granted sensitive and restricted scopes in the app. Upload the video to YouTube Studio and set its Visibility as Unlisted. You need to provide a link to the demonstration video in the YouTube link field.
- Show the OAuth grant process that users will experience, in English. This includes the consent flow and, if you use Google Sign-In, the sign-in flow.
- Show that the OAuth consent screen correctly displays the App Name.
- Show that the browser address bar of the OAuth consent screen correctly includes your app's OAuth client ID.
- To show how the data will be used, demonstrate the functionality that's enabled by each sensitive scope that you request.
- Prepare a detailed justification for each requested sensitive scope, as well as an explanation
for why a narrower scope isn't sufficient. For example: "My app will use
- 如果您提供的应用配置需要验证,您可以选择提交应用进行验证。填写必填字段,然后点击提交以启动验证流程。
您提交应用后,Google 的信任与安全团队会通过电子邮件与您联系,告知您他们需要的任何其他信息或您必须完成的步骤。请查看开发者联系信息部分中的电子邮件地址,以及 OAuth 同意屏幕上的支持电子邮件地址,以请求获取其他信息。您还可以查看项目的 OAuth 同意屏幕页面,确认项目当前的审核状态,包括在我们等待您的回复期间审核流程是否暂停。
验证要求的例外情况
如果您的应用将在下文所述的任何情况下使用,则无需提交以供审核。
个人使用
一种使用情形是:如果您是应用的唯一用户,或者只有少数用户使用您的应用,而每个用户对您都十分了解,那就属于这种情况。您和您的数量有限的用户或许能够熟练地完成未经验证的应用屏幕并授予个人帐号对应用的访问权限。
用于开发层级、测试层级或预演层级的项目
为了符合 Google OAuth 2.0 政策,我们建议您针对测试和生产环境采用不同的项目。我们建议您仅在以下情况下提交您的应用供验证:您希望应用可供拥有 Google 帐号的任何用户使用。因此,如果您的应用处于开发、测试或预演阶段,则无需进行验证。
如果您的应用处于开发或测试阶段,您可以将发布状态保留为测试的默认设置。此设置表示您的应用仍处于开发阶段,并且仅供添加到测试用户列表中的用户使用。您必须管理参与应用开发或测试的 Google 帐号的列表。
![一条警告消息,表示 Google 尚未验证正在测试的应用。](https://developers.google.cn/static/identity/protocols/oauth2/images/examples/tester-warning-screen.png?authuser=7&hl=bg)
仅限服务拥有的数据
如果您的应用使用服务帐号仅访问自己的数据,而不访问任何用户数据(与 Google 帐号相关联),则无需提交验证。
如需了解什么是服务帐号,请参阅 Google Cloud 文档中的服务帐号。如需了解如何使用服务帐号,请参阅针对服务器到服务器应用使用 OAuth 2.0。
仅限内部使用
这意味着只有您的 Google Workspace 或 Cloud Identity 组织中的用户使用该应用。该项目必须归组织所有,并且需要为内部用户类型配置其 OAuth 同意屏幕。在这种情况下,您的应用可能需要获得组织管理员的批准。如需了解详情,请参阅 Google Workspace 的其他注意事项。
- 详细了解公共应用和内部应用。
- 如需了解如何将应用标记为内部应用,请参阅常见问题解答如何将我的应用标记为仅限内部使用?
全网域安装
如果您计划将应用仅以 Google Workspace 或 Cloud Identity 组织的用户为目标,并且始终采用全网域安装,则您的应用不需要进行应用验证。这是因为全网域安装可让网域管理员授权第三方应用和内部应用访问您用户的数据。只有组织管理员才能将应用添加到许可名单以在其网域内使用。
如需了解如何将您的应用设为全网域安装,请参阅常见问题解答我的应用中有用户拥有来自其他 Google Workspace 网域的企业帐号。