Google apps script Can';“t集”;“任何人”;访问我的脚本
我在网上复制了一个应用程序脚本,允许人们通过谷歌网站将文件直接上传到我谷歌硬盘的文件夹中,因为我是一名教师,而不是程序员 我按照程序员的指示,授权了应用程序,但当我想“部署为web应用程序”时,当我选择“谁有权访问应用程序:”时,唯一可用的选项是“我自己”和“我域内的任何人”,但“任何人”都不可用 这对我来说很重要,因为我的学生打算上传文件给我,他们中的许多人在我的同一个域名中没有GMail或帐户。我不想让他们的事情变得更难,只想用另一个帐户登录,而不是他们每天使用的个人电子邮件帐户 在谷歌脚本改变之前,我能够运行一个非常类似的脚本 提前谢谢你Google apps script Can';“t集”;“任何人”;访问我的脚本,google-apps-script,Google Apps Script,我在网上复制了一个应用程序脚本,允许人们通过谷歌网站将文件直接上传到我谷歌硬盘的文件夹中,因为我是一名教师,而不是程序员 我按照程序员的指示,授权了应用程序,但当我想“部署为web应用程序”时,当我选择“谁有权访问应用程序:”时,唯一可用的选项是“我自己”和“我域内的任何人”,但“任何人”都不可用 这对我来说很重要,因为我的学生打算上传文件给我,他们中的许多人在我的同一个域名中没有GMail或帐户。我不想让他们的事情变得更难,只想用另一个帐户登录,而不是他们每天使用的个人电子邮件帐户 在谷歌脚本
/* 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();
}
}
如果您希望每个人,甚至是浏览您的网站时未登录Google帐户的学生,都能够上载文件(=使用脚本),那么您应该将部署菜单中的
以身份执行应用程序,从用户访问应用程序
更改为我
,然后您可以选择任何人,甚至是匿名的
问题是,没有登录Google帐户的用户、来宾都被标记为匿名。如果您希望每个人,甚至是在浏览您的网站时没有登录Google帐户的学生,都能够上载文件(=使用您的脚本)然后,您应该将部署菜单中的Execute-app-as
从访问应用程序的用户更改为Me
,然后您就可以选择任何人,甚至是匿名的
问题在于,未登录Google帐户的用户、来宾被标记为匿名。这是因为您的Google应用程序管理员限制了与公众共享驱动器文件的访问权限。和你的管理员谈谈,放松限制。我相信可以在组织级别设置限制,以便更容易为您破例。这是因为您的google apps管理员限制了与公众共享驱动器文件的访问权限。和你的管理员谈谈,放松限制。我相信可以在组织级别设置限制,以便更容易为您创建例外。脚本文件在哪里?您是通过“管理站点”控制台直接在站点上创建脚本,还是将其托管在驱动器中?脚本文件在哪里?您是通过“管理站点”控制台直接在站点上创建脚本,还是将脚本托管在驱动器中?@ZigMandel,是的,考虑到“我的域内的任何人”
选项,您可能是对的,但是为了实现他所寻求的结果,他仍然必须执行我在后面描述的操作。我的意思是设置“任何人甚至匿名”访问。是的,他知道这一步,因此他看到了选项“我域中的任何人”@ZigMandel,不一定,因为当您将执行为选项设置为用户访问web应用程序时
有两种选择-只有我自己
和任何人
,他实际上是这么说的。当我选择“谁有权访问应用:”时,唯一可用的选项是“我自己”和“我域内的任何人”,但“任何人”不可用。我想我的域名选项中的任何人都在,因为他实际上在域名中?团体?尽管如此,这意味着他实际上拥有被管理员禁止的访问权限,他仍然需要更改该选项,或者他只需要更改该选项。@ZigMandel,是的,您可能正确地考虑了“我的域内的任何人”
选项,但是为了实现他所寻求的结果,他仍然需要做我在后面描述的动作。我的意思是设置“任何人甚至匿名”访问。是的,他知道这一步,因此他看到了选项“我域中的任何人”@ZigMandel,不一定,因为当您将执行为选项设置为用户访问web应用程序时
有两种选择-只有我自己
和任何人
,他实际上是这么说的。当我选择“谁有权访问应用:”时,唯一可用的选项是“我自己”和“我域内的任何人”,但“任何人”不可用。我想我的域名选项中的任何人都在,因为他实际上在域名中?团体?然而,这意味着他或者实际上拥有管理员禁止的访问权限,他仍然需要更改该选项,或者他只需要更改该选项。