谷歌应用程序编写Web应用程序脚本以在用户's的myDrive文件夹仅将文件发送到MY Drive(应用程序的创

Google Apps Script Web app to create folder in user's myDrive folder only sends files to MY my Drive (the creator of the app)

本文关键字:应用程序 文件 文件夹 Drive MY myDrive 脚本 Web 用户 谷歌      更新时间:2023-09-26

我正在编写一个网络应用程序,它将允许学生点击一个按钮来创建一组文件夹&从电子表格中提取的驱动器中的文件。我的问题是,出于某种原因,当其他人点击网络应用程序中的按钮时,文件夹总是在我自己的驱动器中创建的,而不是学生!

编辑:它将正确的用户识别为活动用户,但仍然在我的驱动器中创建文件,而不是他们的文件

我以前做过这样的应用程序,可以将文件(而不是文件夹)复制到用户的驱动器中,这些应用程序运行良好,但出于某种原因,这并没有。是因为我正在创建一个全新的文件夹而不是复制它吗?我之前创建的网络应用程序总是请求用户允许查看他们的驱动器&编辑文件夹等,但这一个没有。我不明白我做错了什么。有什么想法吗?

我甚至尝试将所有权设置为用户,但它仍然是在我自己的驱动器中创建的,这让我抓狂。有没有办法将文件夹移动到用户的"我的免下车应用程序"脚本中?我在文档中找不到它。

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));

这里的问题在于脚本是如何发布的,您将其设置为按自己的方式执行,因此项目是在驱动器上创建的。

"作为web应用程序部署…"设置下,选中选项"作为执行应用程序"

请参阅:https://developers.google.com/apps-script/guides/web#deploying_a_script_as_a_web_app