【问题标题】:Google Sheets API sharing permissions in JavaJava 中的 Google Sheets API 共享权限
【发布时间】:2019-02-05 07:16:03
【问题描述】:

各位程序员大家好, 我正在开发一个自动创建具有预定义结构的 Google 电子表格的 Java 程序。它就像一个魅力,但我在向其他人授予写入权限时遇到了问题。我有一个应该允许在我的电子表格上写的 gmail 帐户列表,但我似乎无法找到自动授予这些权限的方法。 我试图在这里遵循这些谷歌指南: https://developers.google.com/drive/api/v2/reference/permissions/insert https://developers.google.com/drive/api/v3/manage-sharing

但它不起作用,因为我没有运行 DriveService,我使用的是 SheetService,并且上面的代码与我的 SheetService 不兼容。

google SheetsService 没有像 DriveService 那样的权限导入:

no Permission to be imported here

因此,如果有人知道如何解决这个问题,我将非常感激。 如果您需要更多信息,请询问。 谢谢。

【问题讨论】:

    标签: java permissions google-drive-api google-sheets-api google-api-java-client


    【解决方案1】:

    Google drive api 和 google sheet api 是两个不同的 api。

    Google Drive api 是一个文件存储 api。它只是控制文件本身。它实际上无法编辑它们。

    Google 表格 API 让您可以编辑表格的内容。

    为此,您将需要两个服务,一个是 SheetService,用于编辑工作表本身,另一个是 DriveService,用于向工作表添加权限。

    Drive driveservice = new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
                .setApplicationName(APPLICATION_NAME)
                .build();
    

    driveservice 有你需要的权限方法。

    Sheets sheetsservice = new Sheets.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
                .setApplicationName(APPLICATION_NAME)
                .build();
    

    sheetsservice 具有访问工作表所需的权限方法。

    只需检查示波器并确保您有足够的示波器来完成您在驱动器和图纸上所需的操作。

    权限需求

    【讨论】:

    • 我认为控制(非谷歌)文件的字节内容是一种编辑它们的方式;)
    • @tehhowch 我认为这是一个我从未尝试过的疯狂想法。现在我必须尝试一下。
    • 似乎我的权限仍然有问题,我尝试了不同的范围,但每次都说权限不足,现在我正在使用 DriveScopes.DRIVE、DriveScopes.DRIVE_FILE、SheetsScopes.SPREADSHEETS
    • DriveScopes.DRIVE 应该允许您访问驱动器和工作表只需记住您需要重新授权您的用户才能使用新的范围
    • @TGenc 如果您要更改应用程序的范围,则需要删除所有已保存的用户访问/刷新令牌,因为它们通常对新范围无效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多