【发布时间】:2023-03-22 00:55:01
【问题描述】:
我有一个主电子表格,其中包含一个脚本,该脚本使用当前电子表格 ID 向我的服务器 onEdit 发出 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;
}
此功能在母版表上按预期工作。现在,当我使用 python google API 创建此主表的副本时,脚本复制过来,但是,不会运行。我收到一条错误消息......
发生服务器错误。请再次尝试保存项目。
为什么不运行?在电子表格的副本中,我什至创建了一个新函数,它只记录“hello”并收到相同的错误。在 Python SDK 复制主表后,似乎没有运行任何函数。这是权限问题吗?如何让脚本在主表的任何后续副本中执行?
【问题讨论】:
-
这将是一个新项目。尝试删除清单 appsscript.json。你需要重新认证
-
目的是以编程方式完成。我们不能要求我们的用户对电子表格的每个副本都这样做。
-
嗯,首先,它可以手动工作吗?如果是这样,您可以尝试
ScriptApp.invalidateAuth()重新授权。 -
@yesyoukenn 感谢您的回复。复制方法可能存在问题。那么您能否提供详细信息,包括您正在使用的复制电子表格的脚本?如果可以,请更新您的问题。
-
您说:
Seems that no function, even something as simple as logging, executes with the error:这意味着您问题中的代码无关紧要。考虑使用 cmets 中的所有信息完全重写您的问题,并进行更多研究。请阅读minimal reproducible example 和How to Ask。
标签: google-apps-script google-sheets google-api-python-client