非管理员用户可以使用Teamdrives.list()

时间:2019-02-04 17:33:41

标签: google-drive-api google-app-maker

我一直在尝试使用Google App Maker中的高级云端硬盘服务。具体来说,请在Drive.Teamdrives.list()方法的选项参数中使用“ q”参数。

在尝试制定一个使我能够过滤名称的查询的许多小时之后,我发现必须设置useDomainAdminAccess = true才能使查询正常工作。如果没有该开关,我将从查询中获取错误。

我的App Maker应用程序将以用户而不是开发人员身份运行,并且预期的应用程序将查询用户有权访问的哪些Teamdrive,名称中带有pling(!)。

域用户可以使用useDomainAdminAccess开关吗?还是只有域管理员?使用useDomainAdminAccess授予对域中所有团队驱动器的访问权限还是仅授予用户有权访问的团队驱动器?

为什么必须使用此开关才能使q参数起作用?

我应该放弃这种做事方式而研究另一种方式吗?

function myFunction() {
list = Drive.Teamdrives.list({q:"name contains '!'",
                            maxResults:4,
                            useDomainAdminAccess:true});
Logger.log(list);
}

1 个答案:

答案 0 :(得分:0)

在团队驱动器被扫描之后,我应该只使用javascript filter()函数来过滤我的阵列。

  list = Drive.Teamdrives.list({maxResults:100}).items;

  filtered = list.filter(function(obj){
    return obj.name.indexOf('Key') === 0;}
                       );

代码仅读取用户有权访问的团队驱动器,因此不需要useDomainAdminAccess标志。

数组过滤器仅返回以单词“ Key”开头的团队驱动器的新数组。

回答了自己!