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 如何诊断;429错误“;在谷歌脚本中_Google Apps Script_Google Drive Api_Urlfetch_Http Status Code 429 - Fatal编程技术网

Google apps script 如何诊断;429错误“;在谷歌脚本中

Google apps script 如何诊断;429错误“;在谷歌脚本中,google-apps-script,google-drive-api,urlfetch,http-status-code-429,Google Apps Script,Google Drive Api,Urlfetch,Http Status Code 429,我的脚本在一个列表中循环,在每个索引处,它将一张工作表以PDF格式保存在我的工作簿中,然后将其保存到我的google drive文件夹中。名单上有7个人。问题是,我的脚本在导出第6个PDF后抛出429错误。我正试图找出如何解决这个错误,但我对谷歌脚本非常陌生,所以我需要一些正确方向的帮助 函数ToPortrait(){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var validation_sheet=ss.getSheetByName('Va

我的脚本在一个列表中循环,在每个索引处,它将一张工作表以PDF格式保存在我的工作簿中,然后将其保存到我的google drive文件夹中。名单上有7个人。问题是,我的脚本在导出第6个PDF后抛出429错误。我正试图找出如何解决这个错误,但我对谷歌脚本非常陌生,所以我需要一些正确方向的帮助

函数ToPortrait(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var validation_sheet=ss.getSheetByName('ValidSM');
var lastRow=validation_sheet.getLastRow();
var inputs=ss.getSheetByName('validsm').getRange('A2:A'+lastRow.getValues();
var sheet2=ss.getSheetByName('DSM');
var tab=ss.getSheetByName('DSMD');
var url=ss.getUrl().replace(/edit$/,“”);
var sheets=ss.getSheets();
var optSheetId=1123194386;
变量选项={
标题:{
“授权”:“承载者”+ScriptApp.getOAuthToken()
}
}
//循环浏览列表7
对于(变量i=0;i//为了(var i=0;iYou应该使用
muteHttpExceptions
选项。如果使用它,您将能够提取一条有意义的错误消息。如何使用它在中进行了讨论。谢谢!我使用了它。错误429表示找不到项目,因此在查找特定文件时存在问题。此外,我看到您在电子表格中从A2开始输入范围d应用程序脚本中的范围(数组)从0开始索引,而行/列从1开始索引,因此它们也不匹配。此外,使用
'A2:A'+lastRow
将获取每个单元格,无论是否填充,因此如果上一个值下有100个空行,它将返回一个包含数据的数组,然后返回100“”entries.Thank!我将Utilities.sleep更改为Utilities.sleep(5000),现在它似乎可以工作了…我做了另一个测试。使用此方法,我可以创建的PDF的最大数量是13。然后我得到了与以前相同的429错误。这让我相信这是一个最大容量错误,可能不是“项目未找到错误”。仍在试图找到问题的根源………您应该使用
muteHttpExceptions
选项。如果使用它,您将能够提取有意义的错误消息。如何使用它在中进行了讨论。谢谢!我使用了此选项。错误429表示找不到项目,因此在查找特定文件时出现问题。此外,我看到您开始使用e输入范围为A2,在电子表格和应用程序脚本中,范围(数组),从0开始索引,而行/列从1开始,因此它们也不匹配。此外,使用
'A2:A'+lastRow
将获得每个单元格,无论是否填充,因此如果在上一个值下有100个空行,它将返回一个包含数据的数组,然后返回100个“”条目。谢谢!我将Utilities.sleep更改为Utilities.sleep(5000)现在似乎可以工作了…我做了另一个测试。使用这种方法,我能创建的PDF的最大数量是13。然后我得到了和以前一样的429错误。这让我相信这是一个最大容量错误,可能不是一个“项目未找到错误”。仍在试图找到它的底部。。。。。。。。。。
function ToPortrait() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var validation_sheet = ss.getSheetByName('ValidDSM');
  var lastRow = validation_sheet.getLastRow();
  var inputs = ss.getSheetByName('ValidDSM').getRange('A2:A'+lastRow).getValues();
  var sheet2 = ss.getSheetByName('DSM');
  var tab = ss.getSheetByName('DSMD');

  var url = ss.getUrl().replace(/edit$/,'');
  var sheets = ss.getSheets();
  var optSheetId = 1123194386;

  var options = {
      headers: {
        'Authorization': 'Bearer ' +  ScriptApp.getOAuthToken()
      }
    }


  // Loop through List of 7
  for (var i = 0; i < inputs.length; i++){
    sheet2.getRange('B3').setValue(inputs[i][0]);
    SpreadsheetApp.flush();
    Utilities.sleep(500);

    // Loop through all sheets, generating PDF files.
  //for (var i=0; i<sheets.length; i++) {
    //var sheet = sheets[i];

    // If provided a optSheetId, only save it.
   // if (optSheetId && optSheetId !== sheet.getSheetId()) continue; 

    //additional parameters for exporting the sheet as a pdf
    var url_ext = 'export?exportFormat=pdf&format=pdf'   //export as pdf
        + '&gid=' + tab.getSheetId()   //the sheet's Id
        // following parameters are optional...
        + '&size=letter'      // paper size
        + '&portrait=false'    // orientation, false for landscape
        + '&fitw=true'        // fit to width, false for actual size
        + '&sheetnames=false&printtitle=false&pagenumbers=false'  //hide optional headers and footers
        + '&gridlines=false'  // hide gridlines
        + '&fzr=false';       // do not repeat row headers (frozen rows) on each page


     // Get folder containing spreadsheet, for later export
    var name = sheet2.getRange('B3').getValue();    
    var folderID = "1IsffOYYQOHZJKggUzRTntfjmJKN0F6ga"; // Folder id to save in a folder.
    var folder = DriveApp.getFolderById(folderID);
    var response = UrlFetchApp.fetch(url + url_ext, options)
     var blob = response.getBlob().setName(name);

    //save the pdf to drive
    folder.createFile(blob);


}
}