表格应用脚本插件已发布,但所有操作均在容器绑定上完成

时间:2019-02-21 09:03:54

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

我开发了一个由以下内容组成的插件:

  • 绑定到电子表格的Apps脚本
  • 一个外部Web UI,它通过Apps Script API调用了一些Apps Script函数。

这是我的代码示例:

1)在我的外部网络用户界面中,我做类似的事情:

window.gapi.client.script.scripts.run({
    scriptId: 'myscripID',
    resource: {
      function: addWorksheet,
      parameters: [
        'worksheetName'
      ],
      devMode: false
    } 
    ....

2)并且在我的应用脚本中,我具有以下功能:

function addWorksheet(worksheetName) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var newSheet = ss.insertSheet(0);
  ss.setActiveSheet(ss.getSheetByName(newSheet.getName()));
  newSheet.setName(worksheetName);
  return(newSheet.getName());
}

问题描述: 问题是,当我从“运行->测试为加载项...”菜单上的容器绑定脚本中测试加载项时,它运行良好。 =>新工作表创建良好。

但是,如果我在另一个Google表格上对其进行测试,则新表格是在容器绑定脚本中创建的,而不是在活动的Google表格中创建的。

如果从其他帐户(而不是用于创建容器绑定脚本的帐户)安装插件,我也会指出:

@type:“ type.googleapis.com/google.apps.script.v1.ExecutionError”错误消息:“您无权访问所请求的文档。” errorType:“ ScriptError”

我们将不胜感激!

1 个答案:

答案 0 :(得分:1)

我已经通过ID使用电子表格解决了我的问题:

SpreadsheetApp.openById("spreadsheet ID")

代替

SpreadsheetApp.getActiveSpreadsheet()