Google Sheet OAuth 范围只能访问几个文件?

Google Sheet OAuth scopes to only access a few files?

我们有一个受限制的应用程序,我们在其中控制用户帐户的创建。我们还使用 Google 登录。目前,该应用程序未经验证并且可以正常使用,因为所有用户都在我们的 GSuite 域中。但是我们想将其扩展到我们的 GSuite 域之外的用户。

用户可以在我们的应用程序中提供 link 到价差 sheet,应用程序将根据用户请求修改 sheet。

有没有办法只请求一个 OAuth 范围,只允许访问特定文件?这 https://www.googleapis.com/auth/spreadsheets 对我们的用法来说似乎有些过分了。

注意:传播sheet已经存在,所以权限https://www.googleapis.com/auth/drive.file在我们的例子中不起作用。

没有这样的范围。

您可以在官方表格 API 文档中看到,对于将修改电子表格的 API 调用,唯一允许的范围是这些范围(参见 batchUpdate, append, or clear,例如):

  • https://www.googleapis.com/auth/drive
  • https://www.googleapis.com/auth/drive.file
  • https://www.googleapis.com/auth/spreadsheets

考虑到 drive.file 不是一个选项,而且 drivespreadsheets 更 "overkill",目前没有适合您需求的范围。

功能请求:

不过,这在未来可能会改变。 Issue Tracker 中目前有一个开放的功能请求,内容是关于将应用程序的访问权限限制为仅特定文件夹:

您可以单击参考页面左上角的星标以跟踪此信息。

另一种解决方案是使用 service account 而不是 app:

  • service account 将生成一封电子邮件。文档可以与该电子邮件共享。
  • 您可以将访问凭据下载到 JSON 文件中的服务帐户。所以在访问方面它们非常像一个应用程序,只是它们不需要经过验证过程。
  • 使用这些凭据,您将只能访问通过其电子邮件地址与服务帐户共享的文件。

这是一个很好的示例项目,它通过屏幕截图显示了 UI 中所需的步骤: