Google apps script 谷歌应用程序脚本,使用URLFACHTAPP.fetch和大量URL';s
我一直在试图弄清楚如何让UrlFetchApp.fetch方法在一个包含100多个url的数组上正常工作,我需要它来获取脚本。我要么遇到错误429(请求太多),要么在迭代之间设置任何类型的睡眠,URLFetchApp所花费的时间会持续增加,直到每次调用花费8秒以上的时间,我达到了6分钟的超时限制。这是我现在的代码。如有任何意见,将不胜感激Google apps script 谷歌应用程序脚本,使用URLFACHTAPP.fetch和大量URL';s,google-apps-script,google-sheets,urlfetch,http-status-code-429,Google Apps Script,Google Sheets,Urlfetch,Http Status Code 429,我一直在试图弄清楚如何让UrlFetchApp.fetch方法在一个包含100多个url的数组上正常工作,我需要它来获取脚本。我要么遇到错误429(请求太多),要么在迭代之间设置任何类型的睡眠,URLFetchApp所花费的时间会持续增加,直到每次调用花费8秒以上的时间,我达到了6分钟的超时限制。这是我现在的代码。如有任何意见,将不胜感激 function migrateSheetsToFiles() { var ss = SpreadsheetApp.getActiveSpreadsh
function migrateSheetsToFiles() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssId = ss.getId();
var parentfolder = DriveApp.getFileById(ssId).getParents().next();
var mySheets = ss.getSheets();
var fileID = ss.getId();
var FetchArray = [];
var sheetnameArray = [];
var responseArray = [];
var params = {
method : "GET",
headers : {"authorization": "Bearer " + ScriptApp.getOAuthToken()}
};
for(var i=0; i<mySheets.length; i++){
var currentSheet = mySheets[i];
var sheetname = currentSheet.getName();
sheetnameArray[i] = sheetname;
var currentSheetId = currentSheet.getSheetId();
var url = "https://docs.google.com/spreadsheets/d/" + fileID + "/export?format=xlsx&gid=" + currentSheetId;
FetchArray[i] = url;
}
for (i=0; i<FetchArray.length; i++) {
responseArray = UrlFetchApp.fetch(FetchArray[i], params);
Utilities.sleep(1000);
}
for (i=0; i<FetchArray.length; i++) {
parentfolder.createFile(responseArray[i]).setName(sheetnameArray[i]);
}
}
函数migrateSheetsToFiles(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var ssId=ss.getId();
var parentfolder=DriveApp.getFileById(ssId.getParents().next();
var mySheets=ss.getSheets();
var fileID=ss.getId();
var FetchArray=[];
var sheetnameArray=[];
var responseArray=[];
变量参数={
方法:“获取”,
标题:{“授权”:“承载者”+ScriptApp.getOAuthToken()}
};
对于(var i=0;i而言,您似乎希望将表格从电子表格中分离到单独的表格,并将每个表格创建为一个电子表格。我对这一点的理解是否正确?对于这一点,以下方法如何
在分离了mySheets
的数据后,它使用触发器从每个分离的数据创建电子表格。
- 我认为这是可能的,但完成这项工作需要时间
它使用SpreadsheetApp
和/或sheets API v4
将表格与不带UrlFetchApp.fetch()的电子表格分开。
- 我不知道是否发生了限制错误。但是如果这起作用,它只需运行一次就可以完成工作
如果这对你没用,我很抱歉