晚上好!我是印第安纳州诺布尔斯维尔Noblesville West Middle School的8年级数学老师Aaron Ayres。最近,为了全校范围的奖励,我的学校正在使用谷歌大道分享一个"通过"授予被提名学生在提名月份期间获得奖励和其他待遇的权利。我们通常有大约80名学生每月被提名为他们的辛勤工作 - 该大楼的每位教育工作者根据多个标准每月提名一名学生。
我不是必须手动浏览我的文件夹并在月底取消共享个人通行证,而是一直在研究一种允许通行证过期的更有效方法。我遇到了Amit Argawal的自动过期脚本(http://www.labnol.org/internet/auto-expire-google-drive-links/27509/),我认为它可能有效,但它一次只能过期一个文件。有没有办法我可以修改脚本(或创建一个新脚本)来引用脚本编辑器中的多个可共享链接,以便共享访问每个学生的个人'通票在月底到期?换句话说,脚本是否有一种方法可以在相同的日期和时间过期所有80多个传递?我是Google Scripts的新手,所以我想知道我是不是正确格式化我的列表或URL引用,以便脚本识别多个文件,或者我可能会修改脚本以识别链接数组而不是单变量url链接。
提前感谢您的帮助!
答案 0 :(得分:0)
我希望你掌握完整的script。请在列表中提供URL,用逗号分隔。每个学生的密码是否不同?否则,你可能只是添加了文件夹的URL而根本没有更改原始脚本。
但是,请尝试更改脚本的这些部分:
// Enter the full list of URLs(separated with comma) of the public Google Drive file or folder
var URL_LS = ["https://drive.google.com/open?id=0B_NmiOlCM-VTcFp6U1hydTM2MzVCY3AzMUpuTEtVWUhXRXNz", "https://drive.google.com/file/d/0B_NmiOlCM-VTNXFqOU1jTG5JdHJVQ3ZGUGNqZklJNWludllr/view?usp=sharing"] ;
var URL_LN = URL_LS.length;
// Enter the expiry date in YYYY-MM-DD HH:MM format
var EXPIRY_TIME = "2016-02-18 09:46";
再次,按以下方式替换autoExpire()
:
function autoExpire() {
var id, asset, i, email, users;
try {
for (var j = 0; j < URL_LN; j++) {
var URL = URL_LS[j];
var id = URL.match(/[-\w]{25,}/g);
if (id) {
id = id[id.length-1];
asset = DriveApp.getFileById(id) ? DriveApp.getFileById(id) : DriveApp.getFolderById(id);
if (asset) {
asset.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.NONE);
asset.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.NONE);
users = asset.getEditors();
for (i in users) {
email = users[i].getEmail();
if (email !== "") {
asset.removeEditor(email);
}
}
users = asset.getViewers();
for (i in users) {
email = users[i].getEmail();
if (email !== "") {
asset.removeViewer(email);
}
}
}
}
}
} catch (e) {
Logger.log(e.toString());
}
}