从2017年7月18日开始,请求特定敏感OAuth权限的Google OAuth客户端将受到Google审核。
如果您仅在与在Google开发者控制台中创建项目的同一帐户下使用它,则无需进行审核。您可以在此帮助中心文章中了解更多关于这个变化的信息。
此变更适用于Google OAuth Web客户端,包括所有应用脚本项目使用的客户端。通过向Google验证您的应用程序,您可以从授权流程中删除未经验证的应用程序屏幕,并使用户相信您的应用程序是非恶意的。
申请验证后,大约需要一周时间才能生效。
在我们的Google Cloud平台开发项目中,当这种情况发生时,我在一段时间之前发现了这个帖子。
您可以在未进行验证的情况下使用项目进行开发。这没有问题。但是有一些限制(更多信息请参见此处和此处)。基本上,我们达到了100个用户访问应用程序的限制。这很奇怪,因为我们只测试了几个账户(5-6),直到我们发现,如果您卸载并重新安装应用程序,则会将其视为新用户。由于我们正在测试增量授权,因此我们反复卸载/安装应用程序很多次,并且达到了配额。
当您达到此限制时,您将看到消息“该应用暂时禁用与Google登录”,只有来自托管项目所在组织的用户才能访问该应用程序。因此,我们无法使用来自演示域或Gmail账户的帐户进行测试。
唯一可用的解决方案是通过OAuth验证表单(即使您不想发布应用程序),但是执行此操作存在问题。例如,必须从有效的OAuth URL中删除http://localhost。以及与开发相关的更多问题。
❗ 但这最近已经改变了。在本周内,我访问了Google Cloud平台的OAuth凭据屏幕(API和服务 > 凭据 > OAuth同意屏幕),现在页面已经不同了。现在,您不需要指定“授权的JavaScript起源”和“授权的重定向URI”,您只需要指定用于Google API的范围和授权域。然后,在页面底部,您将找到“提交验证”按钮,该过程将开始。您还会在右侧找到一些信息:
关于同意屏幕
同意屏幕告诉您的用户谁正在请求访问他们的数据以及您要求访问的数据类型。
OAuth开发人员验证
为了保护您和您的用户,您的同意屏幕可能需要由Google进行验证。没有验证,您的用户将看到一个额外的页面,指示您的应用程序未经Google验证。
如果需要验证
您的应用程序类型是公共的,并且您添加了敏感范围,则需要验证。验证可能需要几天时间才能完成。在处理过程中,您将收到电子邮件更新。
保存但不发布
即使您的同意屏幕未发布,您仍然可以使用以下限制与用户测试您的应用程序:
敏感范围限制为100个授权请求,超过后需要进行验证
用户会看到一个额外的页面,指示您的应用程序未经 Google 验证。
要包括“已授权的 JavaScript 来源”和“已授权的重定向 URI”,您需要前往 APIs&Services>Credentials,在那里单击您的OAuth 2.0 客户端 ID。那里将有一个表单,您可以在其中添加它们。
在我们的情况下,从Google获得回复需要1天时间。在电子邮件中,有一些指示来通过验证。我们必须使用上传到 YouTube 的视频回复该电子邮件,涉及以下几点:
- 用户如何在您的应用上注册并授予所请求的敏感范围的访问权限?
- 最终用户看到的 OAuth 同意屏幕
- 您的应用程序如何使用所请求的权限提供服务给开发人员?
- 用于测试用户注册流程并验证项目功能的测试帐户电子邮件和密码。
我们录制了一个涉及点1、2和3的视频,并向他们发送了一个测试帐户以完成点4。
1天后,我们收到了来自 Google 的另一个回复,确认我们的项目已通过验证。
所以最终问题得到解决!
希望这能帮助处于同样情况的人。对我们来说,这真的很烦人。
我必须进入我的Google Apps Script设置并打开“ Google Apps Script API”设置。然后我再次尝试,脚本就可以正确执行了。
我几周前使用过该脚本,它运行得很好,因此在那时和现在之间一定发生了某些事情...不确定是什么导致了该设置的更改。