google-drive-api - 非管理员用户可以使用 Teamdrives.list()
问题描述
我一直在尝试使用 Google App Maker 中的高级云端硬盘服务。特别是在 Drive.Teamdrives.list() 方法的选项参数中使用“q”参数。
经过许多小时尝试制定使我能够过滤名称的查询后,我发现我必须设置 useDomainAdminAccess=true 才能使查询正常工作。如果没有那个开关,我会从查询中得到一个错误。
我的 App Maker 应用程序将以 User 而不是 Developer 身份运行,并且预期的应用程序将查询用户有权访问的 Teamdrives 名称中包含 pling(!)。
域用户可以使用 useDomainAdminAccess 开关还是只有域管理员?useDomainAdminAccess 是否授予对域中所有团队驱动器的访问权限,还是仅授予用户有权访问的团队驱动器?
为什么这个开关对于 q 参数起作用是必要的?
我应该放弃这种做事方式并研究另一种方式吗?
function myFunction() {
list = Drive.Teamdrives.list({q:"name contains '!'",
maxResults:4,
useDomainAdminAccess:true});
Logger.log(list);
}
解决方案
在扫描团队驱动器后,我应该只使用 javascript filter() 函数来过滤我的数组。
list = Drive.Teamdrives.list({maxResults:100}).items;
filtered = list.filter(function(obj){
return obj.name.indexOf('Key') === 0;}
);
该代码仅读取用户有权访问的团队驱动器,因此不需要 useDomainAdminAccess 标志。
数组过滤器仅返回一个新数组,其中包含以单词“Key”开头的那些 teamdrive。
自己回答!
推荐阅读
- python - Django(2.1.1 版)升级到 Django(3.2 版)后管理面板更改
- r - 如何在 R 的 for 循环中制作数据帧?
- html - Markdown ---> RST ---> 由于区分大小写,HTML 标头链接不起作用
- c++ - OpenMP For-Loops 在有和没有多线程的情况下产生不同的结果
- c# - 模拟 mongodb 时,mongoclient 始终为空
- python - 来自不同列的元素计数的条形图 - 指导
- sql - JOIN 后 DISTINCT 列的 SQL SUM 值
- python - 为什么“web3.exceptions.ContractLogicError: execution reverted: VM Exception while processing transaction: revert”这个错误发生了?
- sharepoint - 使用 sharepoint api 获取子文件夹中的文件
- angular - 从没有 id 的 ngrx 实体中选择单例实体