如何在不使用受限范围的情况下修复 Google Picker DocsView 列表模式中损坏的图像缩略图?

How can I fix broken image thumbnails in the Google Picker DocsView List mode without using a restricted scope?

我想使用 Google 选择器 API 为我正在开发的网络应用程序创建 Google 云端硬盘文件选择器。我 运行 遇到的问题是在 DocsView 列表模式下,显示的图像带有损坏的缩略图:

我正在使用 https://www.googleapis.com/auth/drive.file 范围,这是 Google 的 documentation 中推荐的范围。如果我改为使用 https://www.googleapis.com/auth/drive.readonly 范围,则缩略图可以正常工作。但是,这有几个缺点:

  1. drive.readonly范围受限,requires应用需要通过受限范围验证和安全评估。

  2. 此范围的权限超出了应用所需的权限,也超出了最终用户可能希望授予的权限(“查看并下载您的所有 Google 云端硬盘文件”是语言中的语言OAuth 同意屏幕。)

在我看来,使用推荐的 drive.file 范围时的正确行为应该是显示通用图像图标(例如:),而不是使用保证return 403 错误,因此浏览器的图像图标损坏,外观不佳。

有解决办法吗?谢谢!

更新: 关于 drive.readonly 范围是否受到限制存在一些问题。我很确定 it is

更新 2: 看起来文档有误——在 GCP 中它被列为 OAuth 应用程序注册中的敏感范围。请参阅下面@ziganotschka 的评论。另外,我创建了一个新的 tracker issue.

两件事:

  1. 根据documentation,只有以下范围受到限制:

https://mail.google.com/ (includes any usage of IMAP, SMTP, and POP3 protocols) https://www.googleapis.com/auth/gmail.readonly https://www.googleapis.com/auth/gmail.metadata https://www.googleapis.com/auth/gmail.modify https://www.googleapis.com/auth/gmail.insert https://www.googleapis.com/auth/gmail.compose https://www.googleapis.com/auth/gmail.settings.basic https://www.googleapis.com/auth/gmail.settings.sharing

https://www.googleapis.com/auth/drive.readonly 不在列表中,因此 - 不受限制,但仅敏感。

  • 您可以通过adding the scopes to the Outh screen验证这一点:

    转到您的 GCP 控制台 -> “API 和服务” -> “OAuth 同意屏幕” -> “准备验证” -> “范围” -> “添加或删除范围” -> 粘贴 googleapis.com/auth/drive.readonly -> “添加到 table” -> “更新”。您会看到该范围将添加到“您的敏感范围”列表中,而不是“您的受限范围”。

  • 因此,如果您想使用此范围,则无需通过限制范围验证。系统只会提示您解释为什么需要此范围并显示您的应用程序的截屏视频,其中显示您在应用程序中使用此范围的内容。
  1. 403 错误和损坏的缩略图问题众所周知,并在 Google Issue's Tracker. However, it looks like it is intended behaviour 上被多次报道。

所以唯一的解决方法是继续使用 https://www.googleapis.com/auth/drive.readonly 范围 - 不用担心验证问题。