如何通过脚本删除 google 电子表格的 public 可见性

How to remove public visiblity of a google spreadsheet by script

我想使用脚本删除文件的 public 可见性。 那可能吗? 目的:我想找到文件夹中的所有电子表格并删除 'Public' 属性,因此拥有 link 的任何人都无法访问 URL。只有文件的 editors/viewers 才能访问。

解决方案:

Drive API可以对特定MIME类型下的文件设置特定的权限,可以用这段代码去掉public访问权限,恢复权限设置为Restricted,即默认值:

function permissions() {
  var folder = DriveApp.getFolderById("folder-id-here");
  var files = folder.getFilesByType("application/vnd.google-apps.spreadsheet");
  while (files.hasNext()) {
    filePermission = files.next().setSharing(DriveApp.Access.ANYONE,DriveApp.Permission.NONE)
                                 .setSharing(DriveApp.Access.ANYONE_WITH_LINK,DriveApp.Permission.NONE);
  }
}

文件夹 ID 可以在 link 中找到,即 https://drive.google.com/drive/folders/(文件夹 ID)。 application/vnd.google-apps.spreadsheet 是 Google 个表格文件的 MIME 类型。

参考文献:

setSharing()

enum Access

enum Permission