允许编辑器在谷歌工作表中触发脚本,打开谷歌表格

时间:2018-03-20 11:40:51

标签: javascript google-apps-script google-form google-sheets-api

嗨,按照Tanaike的回答here,我能够在我的Google工作表中成功将表单实现到弹出窗口中,但是当另一个用户(我设置为编辑器时尝试打开此弹出窗口)时我收到此错误消息:

“您无权执行该操作。请让此项目的所有者授予您访问权限。”

目前尚不清楚如何授予对第二个用户的进一步访问权限,因为他已经设置为编辑器。

以下是我触发的脚本:

function launchForm() {
  var formTitle = '';
  var formID = '14uZANF9q3FKQvfLD1Qx-enYdeQ_pxzORTeHwSSKtHOk';
  var form = FormApp.openById(formID);
  var formUrl = form.getPublishedUrl();
  var htmlApp = HtmlService
  .createHtmlOutput('<script>location.href = "' + formUrl + '"</script>')
  .setSandboxMode(HtmlService.SandboxMode.IFRAME)
  .setTitle(formTitle)
  .setWidth(900) 
  .setHeight(750);
  SpreadsheetApp.getActiveSpreadsheet().show(htmlApp);
}


function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries = [{
    name : "Launch Form",
    functionName : "launchForm"
  }];
  sheet.addMenu("Custom Menu", entries);
};

1 个答案:

答案 0 :(得分:0)

我实际上找到了解决我问题的替代方案。如果有人遇到同样的问题,我就是这样做的:

function myForm() {
  var html = HtmlService.createHtmlOutputFromFile('myForm')
  .setSandboxMode(HtmlService.SandboxMode.IFRAME);
  SpreadsheetApp.getUi()
  .showModalDialog(html, 'Hello');
}

并创建了一个HTML文件:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
<iframe src="..." width="500" height="500" frameborder="0" marginheight="0" marginwidth="0">Loading...</iframe>  </body>
</html>

注意:当您在Google表单中编辑表单时,可以找到iframe标记&gt;然后点击发送&gt;点击标签嵌入HTML