Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 电子表格副本中的Google脚本未执行_Google Apps Script_Google Sheets_Google Api Python Client - Fatal编程技术网

Google apps script 电子表格副本中的Google脚本未执行

Google apps script 电子表格副本中的Google脚本未执行,google-apps-script,google-sheets,google-api-python-client,Google Apps Script,Google Sheets,Google Api Python Client,我有一个主电子表格,其中包含一个脚本,该脚本使用当前电子表格ID向我的服务器OneEdit发出POST请求 function post2Server(){ ss = SpreadsheetApp.getActiveSpreadsheet(); payload = {}; payload['spreadsheet_id'] = ss.getId(); headers = { 'Content-Type': 'application/j

我有一个主电子表格,其中包含一个脚本,该脚本使用当前电子表格ID向我的服务器OneEdit发出POST请求

function post2Server(){
  ss = SpreadsheetApp.getActiveSpreadsheet();

  payload                   = {};
  payload['spreadsheet_id'] = ss.getId();

  headers = {
    'Content-Type': 'application/json',
    'Accept'      : 'application/json'
  }

  options = {
    'method'     : 'post',
    'contentType': 'application/json',
    'headers' : headers,
    'payload' : JSON.stringify(payload)
  }

  res = UrlFetchApp.fetch(MY_SERVER_URL, options);
  return;
}
此功能按照母版图纸上的预期工作。现在,当我使用PythonGoogleAPI创建此主控表的副本时,脚本会复制过来,但不会运行。我在说….时出错了

发生服务器错误。请再次尝试保存项目


为什么这个不跑?在电子表格的副本中,我甚至创建了一个新函数,它只记录“hello”并接收相同的错误。在Python SDK复制了主工作表之后,似乎没有函数运行。这是权限问题吗?如何让脚本在母版工作表的任何后续副本中执行?

通常我处理此类需求的方法是使用。通过这种方式,您可以完全控制执行的脚本和参数

使用此方法必须满足以下主要条件:

  • 将脚本项目部署为API可执行文件
  • 为执行提供范围正确的OAuth令牌
  • 确保脚本和调用应用程序共享一个公共云平台项目

如果您想了解更多详细信息,文档中有一个说明如何运行应用程序脚本的特定方法的链接,在它的底部有许多不同语言的链接,包括python。

现在,使用通过Google服务帐户验证的驱动器API复制包含绑定的Google应用程序脚本的工作表时,由于驱动器API(已存档)中存在错误,该脚本将始终无法使用。在这个问题解决之前,没有简单的解决方案


在我们的例子中,我们能够通过在工作表中使用函数,特别是作为发送web请求的手段,来消除绑定脚本的使用。

这将是一个新项目。尝试删除清单appsscript.json。您需要重新编写,目的是以编程方式完成此操作。我们不能要求用户对电子表格的每个副本都这样做。首先,它是手动工作的吗?如果是,您可以尝试
ScriptApp.invalidateAuth()
重新授权。@yesyoukenn感谢您的回复。复制方法可能存在问题。那么,您能否提供详细信息,包括用于复制您正在使用的电子表格的脚本?如果可以,请更新您的问题。您说:
似乎没有任何函数,即使是像日志记录这样简单的函数,执行时都会出现错误:
,这意味着您问题中的代码是无关的。考虑用更多的研究来完全注解你的问题。请阅读和阅读。