繁体   English   中英

Google 表单不要求权限 Google Scripts

[英]Google forms not asking for permissions Google Scripts

所以我已经把我能在这里找到的所有文章都看了一遍,但我仍然无法解决问题。 我的问题是如何让 Google App Scripts 请求查看某些文件的权限。 这是 Google App Scripts 中的问题:图片

脚本:

 var NamesToDelete = [""]; function moveFiles(sourceFileId, targetFolderId) { var file = DriveApp.getFileById(sourceFileId); var folder = DriveApp.getFolderById(targetFolderId); file.moveTo(folder); } function createFolder(folderName){ var parentFolder = DriveApp.getRootFolder(); var subFolders = parentFolder.getFolders(); var doesntExists = true; var newFolder = ''; // Check if folder already exists. while(subFolders.hasNext()){ var folder = subFolders.next(); //If the name exists return the id of the folder if(folder.getName() === folderName){ doesntExists = false; newFolder = folder; return newFolder.getId(); }; }; //If the name doesn't exists, then create a new folder if(doesntExists == true){ //If the file doesn't exists newFolder = parentFolder.createFolder(folderName); return newFolder.getId(); }; }; function start(user){ var body = "Hello " + user + ",<br> Your google drive cleanup has been successfully initiated. <br> Please go to your drive and click the file named 'Delete Me.' Select everything inside (shift+select) and right click it. In the options that come up, click 'Remove.' <br> Thank you, <br> SS Tools" body = body + "<br> Words you chose: <br>"; for (var i = 0; i<NamesToDelete.length; i++) { body = body + NamesToDelete[i] + "<br>"; } var NEW_FOLDER_NAME = "DELETE ME"; var myFolderID = createFolder(NEW_FOLDER_NAME); var tutorialPicture = UrlFetchApp .fetch("https://i.gyazo.com/f8716f9d9b0539506a78fba52e12788b.png") .getBlob() .setName("How to Delete"); Logger.log(myFolderID); listFolders(myFolderID) MailApp.sendEmail({ to: user, subject: "SS Tools: Drive Cleanup Successfully Initiated", htmlBody: body, inlineImages: { Tutorial: tutorialPicture, } }); }; function FirstWord(word) { var wordLength = word.length var firstWord = "" for (var i = 0; i < wordLength; i++) { var c = word[i] if (c == " ") { break; } else if(c >= '0' && c <= '9') { continue; } firstWord = firstWord + word[i] } return firstWord } function checkIfDeleteAB(One, Two) { var theFirstWord = FirstWord(One) if (theFirstWord == Two || theFirstWord == "") { return true } return false } function listFolders(parentID, folder) { folder = folder || DriveApp.getRootFolder(); var name = folder.getName(); var files = folder.getFiles(); while ( files.hasNext() ) { var nextFile = files.next(); var nextName = nextFile.getName(); var arrayLength = NamesToDelete.length for (var i = 0; i < arrayLength; i++) { if (checkIfDeleteAB(nextName, NamesToDelete[i])) { Logger.log(name + " :: " + nextName); //nextFile.setTrashed(true); moveFiles(nextFile.getId(), parentID); break; } } } var subfolders = folder.getFolders(); while (subfolders.hasNext()) { listFolders(parentID, subfolders.next()); } } function GetResponsesArray(form) { var response = form.response; var user = response.getRespondentEmail(); var item = response.getItemResponses(); var array = item[0].getResponse(); var word = ""; var c = 0; var done = false; Logger.log(array) for (var i = 0; i<array.length; i++){ if(array[i] == " "){ c = 0; NamesToDelete.push(word); Logger.log(word) word = ""; done = true; }else{ word += array[i]; Logger.log("Shaping word :: " + word) c++; done = false; } } if (done == false){ NamesToDelete.push(word); } Logger.log(user) start(user); }

如果您能找到我问题的答案,我将不胜感激!

对于Access denied: DriveApp异常,Google 给出了以下解释:

G Suite 域的管理员可以为其域禁用 Drive SDK,这会阻止其用户安装和使用 Google Drive 应用程序。 此设置还会阻止用户使用使用 Drive 服务或 Advanced Drive Service 的 Apps Script 插件(即使该脚本在管理员禁用 Drive SDK 之前已获得授权)。

换句话说,您似乎不是域的管理员,并且管理员已为您/整个域禁用了 Drive SDK 的使用。

您需要联系管理员并要求他更改权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM