首页 > 解决方案 > 发送电子邮件错误:异常:对 https://docs.google.com 的请求失败,返回代码 500

问题描述

我的 Google 工作表上有一个脚本,可以将转换为 PDF 的工作表发送到邮件列表。这个脚本是在许多不同的电子表格上设置的,但我发现其中一些在最近几天开始失败。

错误内容为:

例外:对https://docs.google.com的请求失败,返回代码 500。截断的服务器响应:<meta name="viewport" c...(使用 muteHttpExceptions 选项检查完整响应)

OAuthToken 似乎不适用于这些电子表格,但它正在处理其他电子表格。

这是代码:

        function sendSheetToPdf(){ // this is the function to call
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sh = SpreadsheetApp.getActive().getSheetByName('Acknowledged Orders'); 
      // if you change the number, change it also in the parameters below
      
      
      var ssC = SpreadsheetApp.getActive().getSheetByName('Acknowledged Orders')
      var toEmail = ""
      var shName = sh.getName()
      
      if (sh.getRange("A11").getValue()!="Rows") {
      
      sendSpreadsheetToPdf(sh, shName, toEmail,"Daily Acknowledged Orders", "Daily Acknowledged Orders");
        
      }
    }
    function sendSpreadsheetToPdf(sheetNumber, pdfName, email,subject, htmlbody) {
      var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
      var spreadsheetId = spreadsheet.getId()  
      var sheetId = sheetNumber ? '0' : null;  
      var url_base = spreadsheet.getUrl().replace(/edit$/,'');
    
      var url_ext = 'export?exportFormat=pdf&format=pdf'   //export as pdf
    
          + (sheetId ? ('&gid=' + sheetId) : ('&id=' + spreadsheetId)) 
          // following parameters are optional...
          + '&size=A3'      // paper size
          + '&portrait=true'    // orientation, false for landscape
          + '&fitw=true'        // fit to width, false for actual size
          + '&sheetnames=false&printtitle=false&pagenumbers=true'  //hide optional headers and footers
          + '&gridlines=false'  // hide gridlines
          + '&fzr=false';       // do not repeat row headers (frozen rows) on each page
    
      var options = {
        headers: {
          'Authorization': 'Bearer ' +  ScriptApp.getOAuthToken(),
        }
      }
    
       var response = UrlFetchApp.fetch(url_base + url_ext, options);
      var blob = response.getBlob().setName(pdfName + '.pdf');
      if (email) {
        var mailOptions = {
          attachments:blob, htmlBody:htmlbody  
        }
        
        var ccEmail = ""
        
    MailApp.sendEmail(
          email+","+ccEmail, 
          subject+" (" + pdfName +")", 
          "html content only", 
          mailOptions);
    
      }
    }

收到的回复:

<!DOCTYPE html><html lang="en"><head><meta name="description" content="Web word processing, presentations and spreadsheets"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"><link rel="shortcut icon" href="//ssl.gstatic.com/docs/common/drive_favicon1.ico"><title>Error</title><meta name="referrer" content="origin"><link href="//fonts.googleapis.com/css?family=Product+Sans" rel="stylesheet" type="text/css"><style nonce="VuOBJHMXpK2pKNeVo731zA">/* Copyright 2020 Google Inc. All Rights Reserved. */
.goog-inline-block{position:relative;display:-moz-inline-box;display:inline-block}* html .goog-inline-block{display:inline}*:first-child+html .goog-inline-block{display:inline}#drive-logo{margin:18px 0;position:absolute;white-space:nowrap}.docs-drivelogo-img{background-image:url('//ssl.gstatic.com/images/branding/googlelogo/1x/googlelogo_color_116x41dp.png');background-size:116px 41px;display:inline-block;height:41px;vertical-align:bottom;width:116px}.docs-drivelogo-text{color:#000;display:inline-block;opacity:0.54;text-decoration:none;font-family:'Product Sans',Arial,Helvetica,sans-serif;font-size:32px;text-rendering:optimizeLegibility;position:relative;top:-6px;left:-7px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:144dpi){.docs-drivelogo-img{background-image:url('//ssl.gstatic.com/images/branding/googlelogo/2x/googlelogo_color_116x41dp.png')}}</style><style type="text/css" nonce="VuOBJHMXpK2pKNeVo731zA">body {background-color: #fff; font-family: Arial,sans-serif; font-size: 13px; margin: 0; padding: 0;}a, a:link, a:visited {color: #112ABB;}</style><style type="text/css" nonce="VuOBJHMXpK2pKNeVo731zA">.errorMessage {font-size: 12pt; font-weight: bold; line-height: 150%;}</style></head><body><div id="outerContainer"><div id="innerContainer"><div style="position: absolute; top: -80px;"><div style="margin: 18px 0; position: absolute; white-space: nowrap;"><a href="//support.google.com/docs/"><img height="35px" src="//ssl.gstatic.com/docs/common/product/spreadsheets_lockup1.png" alt="Google logo"/></a></div></div><p style="padding-top: 15px">Google Docs encountered an error. Please try reloading this page, or coming back to it in a few minutes.</p><p>To learn more about the Google Docs editors, please visit our <a href="https://support.google.com/docs/?hl=en&p=error_help" target="_blank">help center</a>.</p><p><br><b>We're sorry for the inconvenience.</b><br><i>- The Google Docs Team</i></p></div></div></body><style nonce="VuOBJHMXpK2pKNeVo731zA">html {height: 100%; overflow: auto;}body {height: 100%; overflow: auto;}#outerContainer {margin: auto; max-width: 750px;}#innerContainer {margin-bottom: 20px; margin-left: 40px; margin-right: 40px; margin-top: 80px; position: relative;}</style></html>

标签: google-apps-scriptgoogle-sheetshttp-status-code-500

解决方案


推荐阅读