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

use*_*und 5 google-drive-api google-oauth google-sheets-api

我们有一个受限制的应用程序,我们可以在其中控制用户帐户的创建。我们还使用 Google 登录。目前,该应用程序尚未经过验证,但它很好,因为所有用户都在我们的 GSuite 域中。但我们希望将其扩展到 GSuite 域之外的用户。

用户可以在我们的应用程序中提供电子表格的链接,应用程序将根据用户请求修改工作表。

有没有办法只请求一个OAuth仅提供对特定文件的访问权限的范围?这 https://www.googleapis.com/auth/spreadsheets对于我们的使用来说似乎有点过分了。

注意:电子表格已经存在,因此该权限https://www.googleapis.com/auth/drive.file在我们的案例中不起作用。

Iam*_*hus 6

不存在这样的范围。

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

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

考虑到这drive.file不是一个选择,而且这drive比 更“杀伤力” spreadsheets,目前没有适合您需求的范围。

功能要求:

不过,这种情况将来可能会改变。目前,问题跟踪器中有一个开放的功能请求,涉及将应用程序的访问限制为仅特定文件夹:

您可以单击引用页面左上角的星号来跟踪这一情况。


Cro*_*ten 4

另一种解决方案是使用 aservice account代替app

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

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