【发布时间】:2025-11-23 02:30:01
【问题描述】:
我有一个 Google Apps 脚本,它可以打开和处理现有的电子表格并将数据写入 JSON。这在 Google 脚本编辑器中对我来说很好用,但是当我将其部署为 Web 应用程序时,我无法让它打开电子表格。
为了说明我创建了这个简单的测试版本:
- Google spreadsheet,“互联网上的任何人都可以找到和编辑”(尽管我需要对真实的电子表格进行更严格的控制)。
- 使用 doGet 部署 HTML 文件的 Google 脚本(见下文)。
- 一个 HTML 文件(见下文),其中包含用于打开电子表格的表单和 Javascript。
脚本和 HTML 文件保存在一个 Google App 脚本项目中。
我“发布 > 部署为 Web 应用程序”和“执行应用程序为:我”,并授予它必要的权限。
当我“为您的最新代码测试网络应用程序”时,我会显示 HTML 表单。当我点击表单上的“确定”时,我会在“打开电子表格之前”看到第一个警报。
但我从未在“打开电子表格后”看到第二个警报。在尝试打开电子表格时,页面会重定向到一个空白的 userCodeAppPanel URL 并且不再继续。
我猜这与身份验证有关???任何线索都非常感谢!
doGet Google 应用脚本:
function doGet() {
return HtmlService.createHtmlOutputFromFile("opensheet.html")
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
HTML 表单:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
function getData() {
var sheetFileId = "1feVgACmd5_g9II2ll_1u7AVt8jIVg2LbKp13k8UQw6w";
alert("before opening spreadsheet");
var sheetFile = SpreadsheetApp.openById(sheetFileId);
alert("after opening spreadsheet");
}
</script>
</head>
<body>
<p>Update web app from spreadsheet?</p>
<form onsubmit='getData()'>
<input type='submit' value='Go'>
</form>
</body>
</html>
【问题讨论】:
标签: javascript google-apps-script