【发布时间】:2012-12-29 06:52:12
【问题描述】:
好的,我正在为我们的 Intranet 编写 Google Apps 脚本,并且我希望能够显示 Google Drive 上文件夹中的文件列表。但是,我只想显示用户有权访问的文件。
有一个方法,getViewers,会返回一个字符串列表:
https://developers.google.com/apps-script/class_file#getViewers
问题在于,虽然它会返回权限列表中个人的电子邮件地址,但它会返回组名。这不太理想,因为无法使用GroupsManager 获取组对象——它只需要组 ID。
尽管如此,我还是可以做一些事情。我尝试过的一件事是:
var files = DocsList.getFolderById('0B_Zfq-SOMETHINGIJUSTMADEUP').getFiles();
for (f = 0; f < files.length; f++){
var viewers = files[f].getViewers();
var flag = false;
// userGroups is the list of group objects, from this session's user
for (i=0; i < usersGroups.length; i++){
var groupName = userGroups[i].getName();
if (viewers.indexOf(groupName) > -1){
flag = true;
}
}
if (flag){
// print the link to file within the HTML template
}
}
但是由于显而易见的原因,加载页面需要很长时间。它在 5 分钟内加载。我真正需要的是能够从getViewers 方法中获取群组电子邮件地址列表。它为个人用户返回电子邮件,但为组返回组名,这似乎真的很奇怪。有谁知道任何解决方案或解决方法?
【问题讨论】:
-
顺便说一句,您可以通过 UrlFetch 访问的已弃用 Documents API 甚至没有在 ACL 提要中列出组 - 所以不要尝试这样做 ;)
标签: file google-apps-script google-drive-api