Apps 脚本允许用户将数据发送到他们无法查看的电子表格?

Posted

技术标签:

【中文标题】Apps 脚本允许用户将数据发送到他们无法查看的电子表格?【英文标题】:Apps Script to allow user to send data to spreadsheet that they cannot view? 【发布时间】:2019-09-24 03:18:54 【问题描述】:

我正在向不同的人发送电子表格。我希望他们在电子表格中输入一些数据,然后单击“提交”按钮将该数据发送到另一个电子表格,在那里我将从多个用户那里收集数据。

发送数据的人将无法查看/编辑汇总数据的电子表格。

现在我已经使用“提交”按钮和相关代码设置了副本。但是,我认为如果单击“提交”按钮的人没有对发送数据的电子表格的编辑权限,它将无法正常工作。

有没有办法让他们对聚合电子表格进行只写访问?

如果没有,是否有其他解决方法可能会有所帮助?也许我可以以某种方式通过表格?

【问题讨论】:

虽然我不确定我是否能正确理解您的目标,例如,使用 Web Apps 作为包装器怎么样?单击该按钮时,脚本会通过发送值来请求 Web 应用程序。在 Web 应用程序中,这些值被放入用户无法查看和编辑的特定电子表格中。这个怎么样?如果我误解了您的问题,我深表歉意。 没有查看权限的写权限是不可能的。可以通过 Google 表单提交表单,该表单会触发执行后聚合的脚本。作为一种不同的解决方法,在提交时,您可以使用 Drive File permissions 为用户提供临时写访问权限,然后您可以在函数结束时再次为用户撤销 【参考方案1】:

据我所知,有 3 种方法可以做到这一点,但都有些笨拙:

1) 您可以使用可安装的 onEdit() 触发器来代替提交按钮。 on edit 将以安装触发器的用户身份运行,而不是以触发编辑的用户身份运行。

2) 让他们将电子表格作为文档上传提交到谷歌表单中,然后让表单分析提交时的数据。

3) 使用 webhook。将电子表格部署为 web app,并让按钮发送带有数据或工作表 ID 的 urlFetch 请求以进行处理。

【讨论】:

以上是关于Apps 脚本允许用户将数据发送到他们无法查看的电子表格?的主要内容,如果未能解决你的问题,请参考以下文章

Google Apps 脚本 - 将 gmail 中的数据提取到电子表格中

如何使用 Google Apps 脚本将来自 Google 电子表格和 ScriptDB 的数据插入 BigQuery 表

如何使用普通的POST请求将文件发送到apps脚本?

用于复制整个 Google Drive 文件结构的 Google Apps 脚本;如何避免超时?

Google Apps 脚本 - 将 n 小时添加到当前时间和日期

如何将.gpx文件附加到使用Google Apps脚本发送的邮件中?