在尝试为Google OAuth注册应用程序以获取同意屏幕时出现问题

39

我正在尝试注册我的应用程序以获得Oauth同意屏幕,这样我就可以创建OAuth客户端ID。即使我已经正确提交了所有内容,但我仍然在表单末尾收到此验证错误。

保存您的应用程序时出错。

这个错误没有说明表单中哪个输入是无效的。而且在开发工具窗口的网络选项卡中,每次我提交请求时,我都能看到一个POST请求被发起,并且随后失败并显示以下错误消息。

{"error":{"code":3,"message":"The request failed because one of the field of the resource is invalid.","details":[{"@type":"type.googleapis.com/google.rpc.PreconditionFailure","violations":[{"type":"client_auth_config","subject":"?error_code=9&error_field_name=UpdateBrandWithMaskRequest.brand_id&error_field_value=0"}]}]}}.

非常感谢您对如何解决此问题的任何建议。我也已经联系了谷歌支持有关此问题的问题,但他们说他们那边一切正常,并清除缓存和Cookie,但它不起作用。我在此附上我使用的同意配置向导的截图。

我在这里附上了我使用的同意配置向导的截图。


你能验证一下你的用户是否拥有“Oauth Consent Creator”角色和“Oauth Creator”角色吗? - Bruno
我正在使用项目的所有者帐户来创建同意屏幕,因此我认为我具有必要的权限。 - v1shva
请检查您的电子邮件,特别是来自Google的“信任与安全”团队的任何消息。如果该团队发送了一封要求您提供更多信息的电子邮件,则可能会暂停您的验证。请验证您的垃圾邮件箱。 - Bruno
我已经检查过邮件,支持案例仍在进行中,没有解决方案。 - v1shva
你好,你解决了这个问题吗?我也遇到了同样的错误:“保存应用程序时出现错误”。 - Priya
1
嗨,我也遇到了同样的问题。大约一周前进行了相同的过程,当时一切正常 - 在“同意屏幕”的新布局之前。他们的错误消息甚至没有说明哪个字段出错了,而且他们的文档已经过时了! - Carlos Zinato
18个回答

120
将项目ID放入应用程序名称中。

20
这真是有点奇怪,它实际上还真起作用了。谢谢。 - Iqbal
5
已完成,似乎是谷歌方面的一个错误。 - Zhou Haibo
5
这是我很久以来见过最可悲的漏洞。更糟糕的是,现在已经是2021年11月了(两年半之后),这个问题仍然存在,没有任何提示可以解决它。感谢您提供的提示。 - Avrohom Yisroel
1
进一步深入挖掘,这可能只是因为使用的名称由于某种原因未通过其中一个检查而解决了问题。项目ID保证是有效的应用程序名称,因此这个解决方法将始终修复该问题。我建议您查看发送“保存并继续”请求时收到的响应,该响应可能包含更详细的错误消息,指导您修复应用程序名称。 - zr0gravity7
1
我已经在下面的答案中发布了一个解释。 - zr0gravity7
显示剩余6条评论

11

尝试将您的支持电子邮件添加到Firebase控制台。 转到Firebase控制台 ->设置 ->常规 ->支持电子邮件 ->添加电子邮件。 现在,创建oAuth同意屏幕时,请将相同的电子邮件ID添加为开发人员联系信息以及支持电子邮件。 对我有效。


7
为了进一步说明最佳答案,有许多潜在原因会导致应用程序注册的此步骤失败。如果应用程序名称无效(未通过 Google Cloud Platform 实施的任何检查),则将应用程序名称设置为项目 ID 将保证解决问题,因为项目 ID 始终是有效的应用程序名称。
值得深入挖掘底层验证错误,可以通过检查提交表单后发送的网络请求来实现。在“开发人员工具”的“网络”选项卡中,选择捕获“保存并继续”按钮后的 POST 请求。 “响应”选项卡(下面是我的情况)应该显示一个带有更详细消息的错误对象。
在我的情况下,似乎应用程序名称被视为滥用:
“该请求已被归类为滥用,并且不允许继续进行。”
我怀疑这是因为它包含“Google”一词。

enter image description here


1
即使是单词“Mail”也会发生相同的情况。 - Smart Manoj

6

我曾经遇到过同样的问题,那是因为我在应用名称中使用了“Google”。我将其删除后,问题得到了解决。


对我来说有效,谢谢。 - undefined
@AlekseyReshetnikov 很高兴能帮助你。 - undefined
我在我的应用程序名称中使用了关键词“驱动”。在阅读了您的评论后,我进行了更改。现在正在运作。Jazakallahu khoiron :) - undefined

4

我有同样的问题,确实你的应用名称必须与创建项目时选择的项目ID完全相同。


这肯定不是这样的。我的同意表格被接受了,但应用程序名称与我的项目ID不完全相同。关键要求似乎是它必须是独特的,或者大致如此。只需稍微调整应用程序名称,可能就能解决问题。 - undefined
1
不,我从zr0gravity7的回答中看到你是对的。确实,我们两个都是对的。 - undefined

2

@Kalind说的帮助我解决了问题。所以,请登录firebase控制台,选择您要创建OAuth同意的项目。然后单击设置->常规->支持电子邮件->从下拉列表中添加电子邮件。 现在,当我回到google云控制台的OAuth同意屏幕下,我可以看到我已经为该项目注册了一个。


1
这个错误是由于项目名称与应用程序名称相同导致的。因此,您的应用程序名称和项目名称必须不同。

1

对@zr0gravity7有用的帖子进行扩展 我在开发者控制台中检查了'response'{"error":

{"code":3,"message":"com.google.apps.framework.request.BadRequestException: 至少必须更新一个字段。"}}

我只是更改了一个字段,现在保存成功了。

(这是表单错误检查非常令人失望的设计)


1

应用程序名称必须在 Google 上是唯一的。请稍微修改应用程序名称。


1
我曾经遇到过同样的错误。我正在创建一个项目来检查Google身份验证服务。因此,我将我的项目命名为googleIdentityService,然后在保存时出现了“发生保存应用程序错误”的错误。但是当我从项目名称中删除了单词google时,它出奇地正常工作了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接