我在网络上复制了一个应用脚本,允许用户通过Google网站将文件直接上传到我的Google云端硬盘中的文件夹,因为我是老师,而不是程序员。
我按照程序员设置的说明,我授权了应用程序,但是当我想“部署为Web应用程序”时,当我选择“谁有权访问应用程序:”时,唯一可用的选项是“我自己”和“我域内的任何人”,但“任何人”都不可用。
这对我来说非常重要,因为我的学生打算上传文件给我,其中许多人没有GMail或我同一个域内的帐户。我不想通过使用他们每天使用的个人电子邮件帐户专门登录其他帐户来使事情变得更难。
在Google Scripts发生变化之前,我能够运行一个非常相似的脚本。
提前谢谢!
/* The script is deployed as a web app and renders the form */
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('form.html')
.setSandboxMode(HtmlService.SandboxMode.NATIVE);
// This is important as file upload fail in IFRAME Sandbox mode.
}
/* This function will process the submitted form */
function uploadFiles(form) {
try {
/* Name of the Drive folder where the files should be saved */
var dropbox = form.myName + " " + form.myEmail;
var folder, folders = DriveApp.getFoldersByName(dropbox);
/* Find the folder, create if the folder does not exist */
if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder(dropbox);
}
/* Get the file uploaded though the form as a blob */
var blob = form.myFile;
var file = folder.createFile(blob);
/* Set the file description as the name of the uploader */
file.setDescription("Uploaded by " + form.myName);
/* Return the download URL of the file once its on Google Drive */
return "File uploaded successfully " + file.getUrl();
} catch (error) {
/* If there's an error, show the error message */
return error.toString();
}
}
答案 0 :(得分:0)
如果您希望每个人,即使是在浏览您的网站时未登录Google帐户的学生,也能够上传文件(=使用您的脚本),那么您应该从部署菜单更改Execute app as
从user accessing the app
到Me
,然后您就可以选择Anyone, even anonymous
。
问题在于,未登录Google帐户的用户被标记为匿名。
答案 1 :(得分:0)
这是因为您的Google Apps管理员限制了与公众共享驱动器文件的权限。与您的管理员讨论它以放宽限制。我相信可以在组织级别设置限制,以便更容易为您制作例外。