【问题标题】:OAuth consent screen - ability to remove application logo: old solution is no longer workingOAuth 同意屏幕 - 删除应用程序徽标的能力:旧解决方案不再有效
【发布时间】:2020-10-06 10:34:19
【问题描述】:

问题:如何移除应用程序徽标。

解决方案:此答案中的先前解决方案 https://stackoverflow.com/a/57168008/1992004 不再有效。

Google 将"iconUrl" 的格式更改为"icon",现在使用Base64 编码的数据流,如"icon":"iVBORw0KGgoAAAAN...,而不是之前写为"iconUrl":"https://..." 的图像URL。

我尝试了"icon":"" 和许多 Base64 编码的值,例如 "icon":"IA""icon":"Lw" 和其他一些值 - 没有成功。我收到类似的控制台消息

"icon":""

{
  "error": {
    "code": 400,
    "message": "The request failed because one of the field of the resource is invalid.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.PreconditionFailure",
        "violations": [
          {
            "type": "client_auth_config",
            "subject": "?error_code=9&error_field_name=UpdateIconRequest.icon&error_field_value=%3CByteString@3eeee81e+size%3D0+contents%3D%22%22%3E"
          }
        ]
      }
    ]
  }
}

{
  "error": {
    "code": 400,
    "message": "Request contains an invalid argument.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.identity.clientauthconfig.v1.ClientAuthConfigError",
        "code": "ICON_STORAGE_FAILURE"
      },
      {
        "@type": "type.googleapis.com/google.identity.clientauthconfig.v1.IconStorageError",
        "reason": "INVALID_IMAGE"
      }
    ]
  }
}

{
  "error": {
    "code": 400,
    "message": "Invalid value at 'icon' (TYPE_BYTES), Base64 decoding failed for \" \"",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "field": "icon",
            "description": "Invalid value at 'icon' (TYPE_BYTES), Base64 decoding failed for \" \""
          }
        ]
      }
    ]
  }
}

有人知道,应该在此处插入什么来从应用程序中删除徽标图像吗?

【问题讨论】:

  • 您提出的完整要求是什么?
  • 与旧线程中推荐的完全相同:从网络选项卡 XHR 请求复制,该请求是 PUT 并包含 ?alt=json&key,将其复制为 bash 的 cURL,编辑其内容 - icon -part 描述,并在 Cloud Shell 中运行它。
  • 您的应用程序是内部的吗?上传空白/透明图像不是合适的解决方法吗?我认为没有一种受支持的方法可以删除徽标,至少有一种由 Google 记录的方法。
  • 是的,绝对是内部的。空白图片没有帮助 - 图片仍然存在,Google 的意思是,应该对其进行验证。
  • 对于遇到此问题的任何人,请在他们的未解决问题上加注星标并发表评论:issuetracker.google.com/issues/158736319

标签: google-apps-script google-cloud-platform google-api google-oauth google-workspace


【解决方案1】:

答案:

很遗憾,没有办法做到这一点。

更多信息:

一旦上传了 OAuth 应用程序徽标,就没有支持的方法来删除它 - 在您链接完成此操作的方式的问题中,检查网络请求并从之前通过 UI 发送的 JSON 对象确实显示了这一点。

由于图标 URL 已更改为需要 Base-64 编码值,因此已弃用。很难说这是否是 Google 故意的,但现在空值将始终返回 INVALID_ARGUMENTicon 值中的任何数据也只会替换图像数据,因此这不是可行的解决方法,就验证过程而言,图像数据存在,因此需要进行验证。

如果这不是一个繁重的过程,这里唯一的解决方法是创建一个新的 GCP 项目,其中包含一个新的 OAuth 同意屏幕,而不上传图片。当然,您需要重新激活所有相关 API,并将相关脚本和项目链接到新设置。

功能要求:

但是,您可以让 Google 知道这是一项很重要的功能,并且您想请求他们实施该功能。 Google 的Issue Tracker 是开发人员报告问题并为其开发服务提出功能请求的地方。我建议使用 G Suite Add-ons 的功能请求模板,因为这是可以使用 GCP 项目的组件。

更新:对此的功能请求是可见的here,为了提高对此的可见性,请点击页面顶部的☆。

相关问题:

【讨论】:

  • 好,在大流行期间感到沮丧的又一个理由 :) 还有一个问题跟踪器可以发泄;)
  • 使用 DELETE 方法工作了一段时间,但不再有效(404 错误)stackoverflow.com/a/63858175/488666 悲伤:-(
  • 现在有一个错误报告:issuetracker.google.com/issues/185141979。请在那里投票,希望它比功能请求更受关注,因为老实说,这是一个错误!
  • @Dmitry 这不是错误,它是当前预期的行为。来自 Google 员工的this feature request 上的This comment 证实了这一点 - “此功能请求已转发给 Cloud UI 产品团队,他们正在处理它。但是,目前没有预计到达时间。” - 为 this 问题加注星标更为重要,这样 Google 会看到它的要求很高并提高优先级。
【解决方案2】:

2021 年 5 月 - 仍然可以完全删除同意屏幕(从而允许再次创建它)。在https://stackoverflow.com/a/57168008/1992004中查看我的更新答案

【讨论】:

猜你喜欢
  • 2019-11-21
  • 2021-11-02
  • 2020-07-31
  • 1970-01-01
  • 2017-10-23
  • 2018-09-04
  • 1970-01-01
  • 1970-01-01
  • 2019-12-07
相关资源
最近更新 更多