我正在编写一个Web应用程序,允许学生单击一个按钮,从电子表格中创建一组文件夹和文件 . 我的问题是,由于某些原因,当其他人点击网络应用程序中的按钮时,该文件夹总是在我自己的驱动器中制作,而不是学生!
edit: it recognizes the correct user as the active user but still creates the file in my drive not theirs
在将文件(不是文件夹)复制到用户的驱动器之前,我已经创建了这样的应用程序,这些工作正常,但由于某种原因,这不是 . 是因为我正在创建一个全新的文件夹而不是复制它?我之前创建的网络应用程序总是要求用户查看他们的驱动器和编辑文件夹等的权限,但这个没有 . 我无法弄清楚我做错了什么 . 有任何想法吗?
我甚至尝试将所有权设置给用户,但它仍然在我自己的驱动器中创建,这让我疯狂 . 有没有办法通过应用程序脚本将文件夹移动到用户的驱动器中?我在文档中找不到它 .
var sheet = '1kM7GeBubLRDC_L_G0rrlddHARSL59DkmWco6Z72gJAg';
var ss = SpreadsheetApp.openById(sheet).getActiveSheet(); //SPREADSHEET
var netID = Session.getActiveUser();
var title = ss.getRange("D1").getValue();
var mainFolder = DriveApp.createFolder(title);
var mainFolderID = mainFolder.getId();
var portfolio = DriveApp.getFolderById(mainFolderID);
portfolio.setOwner(netID + "@nyu.edu");
Logger.log(getOwner(portfolio));
1 回答
这里的问题在于如何发布脚本,您将其设置为像您一样执行,因此项目将在您的驱动器上创建 .
在 "Deploy as a web app..." 设置下选中 "Execute the app as" 选项,该值必须为"User accessing the web app"而不是"Me" .
见:https://developers.google.com/apps-script/guides/web#deploying_a_script_as_a_web_app