如何使用谷歌应用程序脚本获取文件共享权限信息



我想获取哪个文件共享权限已设置为具有下载链接的文件。我找不到任何参数。这是我的代码,它只能生成文件下载链接。

function listFolderContents() {
var foldername = 'Foldername';
var folderlisting = 'listing of folder ' + foldername;
var folders = DriveApp.getFoldersByName(foldername)
var folder = folders.next();
var contents = folder.getFiles();
var ss = SpreadsheetApp.create(folderlisting);
var sheet = ss.getActiveSheet();
var file;
var name;
var link;
var row;
while(contents.hasNext()) {
file = contents.next();
name = file.getName() + "/" + file.getUrl() + "/" + file.getName();
link = file.getUrl() + "/" + file.getName();
sheet.appendRow( [name] );     
}  
};
  • 您想要使用Google Apps脚本检索文件的权限信息

如果我的理解是正确的,这个答案怎么样?您可以通过getSharingAccess()getSharingPermission()的方法检索共享权限和共享访问权限。当这些被用于脚本时,下面的修改如何?

修改的脚本:

在这个修改中,while循环被修改。

while(contents.hasNext()) {
file = contents.next();
name = file.getName() + "/" + file.getUrl() + "/" + file.getName();
link = file.getUrl() + "/" + file.getName();
var sharingPermission = file.getSharingPermission(); // Added
var sharingAccess = file.getSharingAccess(); // Added
sheet.appendRow( [name] );
}

注:

  • 我无法确认输出值的格式。所以我只为您的脚本添加了两个方法
  • 此外,如果您想检索编辑器和查看器,那么在while循环中添加以下脚本怎么样?

    var editors = file.getEditors().map(function(e) {return e.getEmail()});
    var viewers = file.getViewers().map(function(e) {return e.getEmail()});
    

参考文献:

  • getSharingPermission((
  • getSharingAccess((
  • getEditor((
  • getViewers((

如果我误解了你的问题,而这不是你想要的结果,我道歉。

最新更新