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