我想使用 docsAPI(namedRange 和批量更新)替换文档中的一些文本,并且我的 Apps 脚本功能表现良好。
但即使我不更改任何代码,也会不定期地引发内部错误。
我找不到有关该错误消息的任何信息。
有谁知道这个吗?
错误消息就像..
GoogleJsonResponseException:对 docs.documents.batchUpdate 的 API 调用 失败并出现错误:遇到内部错误。
批量更新代码就像..
function replace_named_range(doc_id = '1z8Mp2Twt_DgDe8RqPIRVSSc_VACDHdcQL9-iME75qbg', range_name='{{Replacement}}',replace_text='sample text'){
var request = {
"text": replace_text.toString(),
"namedRangeName": range_name
};
var request_array =[];
request_array.push({"replaceNamedRangeContent": request});
Docs.Documents.batchUpdate({"requests": request_array},doc_id);
Logger.log("Replace Request \ndoc_id : %s\nrange_name : %s\nreplace_text : %s",doc_id, range_name, replace_text)
}
由于
Docs.Documents.batchUpdate()
调用有时工作正常,有时会出错,因此您应该使用 exponential backoff 在抛出错误之前重试几次,如下所示:
function replaceNamedRangeWithBackoff(doc_id, range_name, replace_text) {
call(_ => replace_named_range(doc_id, range_name, replace_text));
}