无法访问从 appscript 发布到网络的电子表格
Posted
技术标签:
【中文标题】无法访问从 appscript 发布到网络的电子表格【英文标题】:Unable to access spreadsheet which is published to the web from appscript 【发布时间】:2020-07-11 22:51:20 【问题描述】:我编写了一个应用脚本(网络应用)来访问电子表格并根据搜索条件显示其内容。
Web app should display content based on given name
使用我自己的 gmail 帐户可以正常工作。但是当其他用户(获得应用脚本网络应用的访问权限)尝试使用此应用时,他们看到的错误为
“例外:您无权访问所请求的文档。”执行 SpreadsheetApp.openById(spreadsheetId) 时抛出错误。
通过明确访问(与用户共享)电子表格,他可以毫无问题地访问数据。 但既然电子表格已经发布到网络上,任何人都可以访问,为什么还要再次要求明确的访问权限才能执行电子表格。
有没有办法在不与最终用户共享的情况下访问电子表格数据?提前感谢您的帮助。
【问题讨论】:
以“我”的身份执行。 它适用于我,但不适用于其他用户。 你好@Avinash!当您单击“部署为 Web 应用程序”时,您应该会看到一个菜单,其中一个选项是“将应用程序执行为:”。您能否确认您在该区域中具有 @TheMaster 建议的值“Me”? 感谢您的回复...我已在“将应用程序执行为:”作为“访问网络应用程序的用户”授予访问权限,因为此应用程序也可供其他人访问。因此,如果我只给出“执行应用程序为:”作为我,我认为除了我之外的任何人都无法访问它。如果我理解错误,请纠正我。如我的问题中所述...我(也是其他用户)能够访问应用脚本网络应用,但无法访问已发布到网络的电子表格。 【参考方案1】:我了解到您发布了一个可打开某个工作表的网络应用。在“部署为 Web 应用程序”菜单中(从 Apps 脚本编辑器打开并选择 Publish ⮞ Deploy as web app
),系统会要求您确定如何“以 Web 应用程序的身份执行应用程序 ”。您可以在这些值之间进行选择:
由于第二种情况,用户需要以前的访问权限才能打开工作表。由于您无论如何都想授予他们访问权限,因此我建议使用第一个选项。如有任何疑问,请问我。
【讨论】:
以上是关于无法访问从 appscript 发布到网络的电子表格的主要内容,如果未能解决你的问题,请参考以下文章
使用 JDBC executeBatch() 通过 appscript 批量插入 Cloud SQL,耗时过多
Google 表格/AppScript - 将数据从一张表格复制到另一张表格
使用Appscript将Google图表中的3d图表作为图像插入电子邮件中