在共享驱动器中查找所有空文件夹并使用应用程序脚本更改颜色



我是Apps Script的新手,我正在尝试制作一个可以找到所有空文件夹并更改其颜色的脚本。我设法做到了,当我在我的驱动器中尝试它时,它运行得很好,但当我在共享驱动器中尝试运行它时,会出现以下错误:

Exception: Request failed for https://www.googleapis.com returned code 404. Truncated server response: {
"error": {
"errors": [
{
"domain": "global",
"reason": "notFound",
"message": "File not found: 166gK63I72FZvqY0XjSE63z4SyQuSgGp... (use muteHttpExceptions option to examine full response)

我四处寻找一些解决方案,唯一的一个是在谷歌云平台上创建一个项目。我这样做了,并将我的脚本链接到GCP中的项目,但它给出了相同的错误。基本上,我希望我的脚本能够访问我的共享驱动器。共享驱动器很大,有很多文件夹和文件,我不知道这个错误是因为调用了太多api,还是权限有问题。我希望有人能帮忙!非常感谢!我把我的剧本留在这里:

function findEmptyFolders() {
var parentFolder = DriveApp.getFolderById('Shared Drive ID');
var folders = parentFolder.getFolders();
while (folders.hasNext()) {
var childfolder = folders.next();
recurseFolder(parentFolder, childfolder);
}
}
function recurseFolder(parentFolder, folder) {
var filecount = 0;
var foldercount = 0;
var files = folder.getFiles();               
var childfolders = folder.getFolders();
while (childfolders.hasNext()) {
var childfolder = childfolders.next();
recurseFolder(folder, childfolder);
foldercount++;
}
while (files.hasNext()) { 
var file = files.next();
filecount++;
}
if (filecount == 0 && foldercount == 0) {            
var id = folder.getId();
Logger.log(folderColor.setColorByName(id,'Yellow cab'));
}             
}
var folderColor = {};
folderColor.setColorByName = function(id,name){
if(!colorPalette[name]){
throw "Name is not valid, please check name in colorPalette.";
}
this.setColor(id,colorPalette[name]);
return true;
}
folderColor.init = function(){
return this;
}
folderColor.setColor = function(id,hexa){
var url = 'https://www.googleapis.com/drive/v2/files/'+id+'?fields=folderColorRgb';
var param = {
method      : "patch",
contentType: 'application/json',
headers     : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
payload: JSON.stringify({folderColorRgb:hexa})
};
var html = UrlFetchApp.fetch(url,param).getContentText();

return html;
}
var colorPalette = {
"Chocolate ice cream":"#ac725e",
"Old brick red":"#d06b64",
"Cardinal":"#f83a22",
"Wild straberries":"#fa573c",
"Mars orange":"#ff7537",
"Yellow cab":"#ffad46",
"Spearmint":"#42d692",
"Vern fern":"#16a765",
"Asparagus":"#7bd148",
"Slime green":"#b3dc6c",
"Desert sand":"#fbe983",
"Macaroni":"#fad165",
"Sea foam":"#92e1c0",
"Pool":"#9fe1e7",
"Denim":"#9fc6e7",
"Rainy sky":"#4986e7",
"Blue velvet":"#9a9cff",
"Purple dino":"#b99aff",
"Mouse":"#8f8f8f",
"Mountain grey":"#cabdbf",
"Earthworm":"#cca6ac",
"Bubble gum":"#f691b2",
"Purple rain":"#cd74e6",
"Toy eggplant":"#a47ae2"
};

在您的脚本中,以下修改如何?

发件人:

var url = 'https://www.googleapis.com/drive/v2/files/'+id+'?fields=folderColorRgb';

收件人:

var url = 'https://www.googleapis.com/drive/v2/files/'+id+'?fields=folderColorRgb&supportsAllDrives=true';

参考:

  • 文件:补丁

相关内容

最新更新