Google apps script 我拥有几个GS电子表格,带有按钮激活脚本。我可以允许用户使用它们,而不牺牲用户的安全性吗?

Google apps script 我拥有几个GS电子表格,带有按钮激活脚本。我可以允许用户使用它们,而不牺牲用户的安全性吗?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,对于我来说,实现以下结果的最佳方式是什么?如果您能提供任何帮助,我将不胜感激 我是十张谷歌电子表格的所有者。我想与多个用户共享这十个电子表格,这样每个用户都能做到以下几点:当用户打开电子表格S1,按下按钮B,然后运行一个脚本,读取和修改电子表格S2中的单元格值 我已经创建了一个工作原型,但它有一个我不希望最终版本有的主要缺陷。看,我不希望用户在第一次单击按钮时必须通过一个可怕的权限屏幕。。。毕竟,这个按钮位于我拥有的文档中,它修改了我拥有的文档。。。用户绝对没有理由给我任何权限 我100%确

对于我来说,实现以下结果的最佳方式是什么?如果您能提供任何帮助,我将不胜感激


我是十张谷歌电子表格的所有者。我想与多个用户共享这十个电子表格,这样每个用户都能做到以下几点:当用户打开电子表格S1,按下按钮B,然后运行一个脚本,读取和修改电子表格S2中的单元格值

我已经创建了一个工作原型,但它有一个我不希望最终版本有的主要缺陷。看,我不希望用户在第一次单击按钮时必须通过一个可怕的权限屏幕。。。毕竟,这个按钮位于我拥有的文档中,它修改了我拥有的文档。。。用户绝对没有理由给我任何权限



我100%确信这是可能的,因为我拥有所有的电子表格,不需要用户的许可(毕竟,我是授权用户访问我的文件的人,而不是相反)。但是我很难知道如何学习。。。你能帮我解决这个问题吗?

避免向用户显示授权对话框的一个方法是通过触发器运行代码。这需要用户通过单击复选框而不是单击按钮来启动脚本。有关示例,请参见脚本。请注意,此配方本身不会让用户无法访问代码

您是说您的代码需要访问另一个电子表格。这意味着您不能使用
onEdit(e)
,但需要通过网络以自己的帐户运行代码

另一个方法是将脚本实现为,并将其部署为“以我的身份运行”。无论键盘上的用户是谁,代码都将在您的帐户下运行。这使您可以自己保存代码,但是用户界面将在web应用程序中基于HTML,电子表格只是作为后端


有关更多信息和示例代码,请参见答案。

我认为您应该得出结论,100%更像是0%。您需要脚本的编辑权限。因此,您可以修改脚本。如果你拥有这张表,这并不重要。您可以编写一个函数从当前用户获取gmail并删除所有联系人,或者从当前用户删除根驱动器。。。发射型计算机断层扫描仪。。因此,权限是绝对必需的……假设应用程序脚本代码仅访问您的帐户,您可以实施两步流程,让用户无法访问大部分代码,并且仍然可以在不请求权限的情况下运行它。如果代码需要对用户帐户执行任何操作,则无法请求权限。绑定到工作表的代码可能只有所需的最小值,并使用
UrlFetchApp.fetch(发布的\u url\u您的\u Web\u应用程序)
通过POST请求调用您的Web应用程序,然后您的Web应用程序可以通过ID获取工作表。将工作表文件ID传递给Web应用程序。感谢您的回复。我对这个问题进行了编辑,只提到了我最担心的缺陷。。。也就是说,我的脚本总是请求允许查看和删除每个用户的Google Drive中的所有电子表格。当然,这对我的用户来说是一件非常可怕的事情。我的意思是,我的用户很信任我,但不是那些不合理的东西,谢谢你的回复。只有一个问题。。。当脚本是web应用程序时,用户是否仍然可以单击电子表格中的按钮?或者所有的网络应用都必须是一个独立于电子表格的网页吗?你可能想了解一下谷歌的系统。编辑答案以包含另一个可能的配方,以避免出现授权对话框。