【问题标题】:google spreadsheet script html service for all适用于所有人的谷歌电子表格脚本 html 服务
【发布时间】:2015-03-08 11:33:08
【问题描述】:
我写了一个谷歌电子表格脚本,包括。 html服务。现在我喜欢将 html 服务作为调查发布。任何人都可以在不注册谷歌的情况下看到它,但不应该让它看到所有参与者的结果。
你知道我怎样才能达到这个目标吗?
我尝试了很多发布选项,但都没有达到我的目标。你呢?
【问题讨论】:
标签:
html
service
google-apps-script
google-sheets
publish
【解决方案1】:
现在,您的 Apps 脚本项目可能已绑定到电子表格。如果提交表单的用户不需要查看电子表格,则创建一个 绑定到任何东西的 Apps 脚本文件,它是“Stand Alone ”。然后不要共享电子表格。如果您共享电子表格,则文件的共享对象可以查看电子表格。 可以隐藏和保护工作表和范围。当然,您可以为某些用户进行设置,使其能够查看电子表格,而其他用户则可以进行编辑。
如果您共享电子表格文件,那么与之共享的每个人都具有查看权限。您不能共享电子表格文件,也不能授予 VIEW 权限。 但是,如果您希望 一些 用户只能看到电子表格中的 一些 工作表,而不是所有工作表,那么您需要编写一些在电子表格打开时运行的代码,该代码将根据谁打开电子表格来隐藏和取消隐藏工作表。只有具有 EDIT 权限的用户才能取消隐藏隐藏的工作表。所以,这是一个选择。您可以对任何人隐藏工作表。但是具有 EDIT 权限的用户可以取消隐藏工作表。如果您想对只有 VIEW 权限的人隐藏工作表,(他们无法取消隐藏)然后运行代码onOpen() 来检查用户、检查他们的权限并隐藏或取消隐藏工作表。
如果提交表单的人永远不需要查看电子表格文件,那么甚至不要与这些用户共享电子表格 URL。只需将独立 HTML 服务用作您的“前端”、“用户界面”,用户无需查看电子表格即可。
因此,如果使用 HTML 的人不需要查看电子表格,则不要向这些人提供电子表格的 URL。向他们提供已发布应用的 URL。在这种情况下,已发布应用程序的用户将永远不会看到电子表格。发布的应用本质上是一个网站,没有真实的域名。
适合您的解决方案取决于共享、编辑和查看设置的简单或复杂程度。
【解决方案2】:
打开脚本文件时,需要使用Publish >> Deploy as web app选项。
然后,选择您要部署为 webapp 的版本或创建一个新版本,将应用设置为以您的身份执行,并添加对任何人(甚至是匿名)的访问权限。像这样:
重要的是,当有人访问为您的 Web 应用程序显示的 URL 时调用的函数是一个名为 doGet() 的函数。因此,您必须将用于显示 UI 和 Form 的函数重命名为 doGet()。此函数应返回有效的 HTML 输出(通常使用 HTMLService 或已弃用的 UiApp 服务)。
所以这个:
给你这个: