【问题标题】:Google Sheet OAuth scopes to only access a few files?Google Sheet OAuth 范围只能访问几个文件?
【发布时间】:2020-09-04 16:00:36
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: google-drive-api google-oauth google-sheets-api


    【解决方案1】:

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

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

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

    【讨论】:

    • 这是一种非常棒的做事方式!
    【解决方案2】:

    没有这样的范围。

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

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

    考虑到drive.file 不是一个选项,而且drive 比spreadsheets 更加“矫枉过正”,目前没有适合您需求的范围。

    功能要求:

    不过,这可能会在未来发生变化。目前在问题跟踪器中有一个关于将应用程序访问限制为特定文件夹的开放功能请求:

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

    【讨论】:

    • 快速跟进,经过大量挖掘和测试,我们发现drive.install和Drive UI Integration允许用户使用我们的应用程序Open一个文件,这只能访问打开的文件文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 2014-09-16
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多