为什么通过电子邮件发送一份 PDF 会导致 Google Apps 脚本中出现“调用次数过多”错误?

问题描述 投票:0回答:1

将此 PDF 作为附件发送会导致此错误:

Service invoked too many times for one day: urlfetch.
,我不明白为什么。

function emailSavePo(poNumber, supplier, unit) {
  poNumber = '2B'
  supplier = 'ABC'
  unit = 'UnitA'
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var spreadsheetId = ss.getId();
  var email = Session.getActiveUser().getEmail();
  var pdfName = 'PO' + ' ' + poNumber + ' - ' + supplier + ' - ' + unit;
  var sheetId = ss.getSheetByName('PO Sheet').getSheetId();
  
  var url_base = ss.getUrl().replace(/edit$/, '');
  var url_ext = 'export?exportFormat=pdf&format=pdf'   //export as pdf
    + (sheetId ? ('&gid=' + sheetId) : ('&id=' + spreadsheetId))
    // following parameters are optional...
    + '&size=A4'      // paper size
    + '&portrait=true'    // orientation, false for landscape
    + '&fitw=true'        // fit to width, false for actual size
    + '&top_margin=0.50'
    + '&bottom_margin=0.50'
    + '&left_margin=0.50'
    + '&right_margin=0.50'
    + '&sheetnames=true&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) {
    const mailOptions = {
      attachments: blob
    }
    MailApp.sendEmail(
      email,
      subject + " " + pdfName + "",
      "Hello! \n\nHere is a copy of the PO! \n\nBest regards,\nTeam",
      mailOptions);
    ss.toast('A pdf copy of the PO has been sent to ' + email + '!')
  }
}

记录了所有部分,一切似乎都正常。

google-apps-script pdf-generation
1个回答
2
投票

考虑其他电子表格上可能具有的其他功能很重要。个人 Gmail 帐号的网址提取调用配额限制为每天 20,000 次,企业 Google Workspace 帐号的网址提取调用配额限制为每天 100,000 次。此配额计入您的 Google 帐户,您帐户上的其他功能可能正在消耗您的配额。尝试在不同的帐户上运行该脚本,如果它有效,则意味着某些内容正在消耗您的配额。您可以使用此链接查看有关 Google 服务配额的详细信息 https://developers.google.com/apps-script/guides/services/quotas

© www.soinside.com 2019 - 2024. All rights reserved.