当前位置: 首页 > 知识库问答 >
问题:

urlfetchapp。获取在谷歌应用程序脚本中是不允许的错误

卞云瀚
2023-03-14

我将一个谷歌应用程序脚本代码绑定到一个谷歌电子表格,该电子表格使用urlfetchapp从其中一张表格创建了一个PDF文件。获取(url、选项)函数。昨天,没有编辑代码,它突然停止工作,显示错误“urlfetchapp.fetch是不允许的”。

我检查了我为其他电子表格编写的其他电子表格绑定代码,它也不再工作了,同样的错误。

在上下文中,我正在为我的公司使用Google Workspace,并处理敏感数据。但直到昨天,它一直运转良好。

function CrearPDFysubirloalDrive(){
  var Ss = SpreadsheetApp.getActiveSpreadsheet();
  var Sheet= Ss.getSheetByName("Name") 
  var Longitud = Sheet.getLastRow(); 
  var range = Sheet.getRange(1,1,Longitud,10);
  var docId ="Planning"; 
  var docId1Semana = Sheet.getRange('F5').getValue(); 
  var docIdRevision = Sheet.getRange('C7').getValue();
  var pdfname= docId+ " W"+docId1Semana+"-Rev "+docIdRevision; 

  //This is not important to the question
  var tempst= Sheet.copyTo(Ss).setName(pdfname);
  tempst.insertColumns(1);
  tempst.setRowHeight(1,30)
  tempst.setColumnWidth(1, 20);
  tempst.setColumnWidth(12, 30);
  tempst.deleteColumns(13,tempst.getMaxColumns()-12)
  //tempst.deleteRows(Longitud+2, (tempst.getMaxRows()- (Longitud+2)))
  tempst.getRange("A4:A5").setBackground("white");
  var drawing = tempst.getDrawings(); 
  for (let i=0; i<drawing.length;i++){
  drawing[i].remove();
  }
  
  SpreadsheetApp.flush(); 

//THIS PART IS GIVING THE ERROR
  var url = 'https://docs.google.com/spreadsheets/d/{ID}/export?'.replace('{ID}', Ss.getId());
  var exportOptions = 'exportFormat=pdf&format=pdf' + // export as pdf / csv / xls / xlsx
    '&size=letter' + // paper size legal / letter / A4
    '&portrait=true' + // orientation, false for landscape
    '&fitw=true&source=labnol' + // fit to page width, false for actual size
    '&sheetnames=false&printtitle=false' + // hide optional headers and footers
    '&pagenumbers=false&gridlines=false' + // hide page numbers and gridlines
    '&fzr=false' + // do not repeat row headers (frozen rows) on each page
    '&top_margin=0.40' + //All four margins must be set!
    '&bottom_margin=0.00' + //All four margins must be set!
    '&left_margin=0.40' + //All four margins must be set!
    '&right_margin=0.40' + //All four margins must be set!
    '&gridlines=false' + //true/false
    '&gid=' + tempst.getSheetId(); // the sheet's Id
  
  var token = ScriptApp.getOAuthToken();

  var blob = UrlFetchApp.fetch(url + exportOptions, {
    headers: {
                               Authorization: 'Bearer '+token
    }
  }).getBlob().setName(tempst.getName()+".pdf");

  var pdfFile = DriveApp.createFile(blob);  

  
  var FolderDestino= DriveApp.getFolderById(<FOLDERID>); 
  FolderDestino.createFile(blob.setName(pdfname))

我无论如何都不是编码方面的专家,但我怀疑它与Oauth令牌有关。要么该函数已被弃用,要么该函数已被弃用。

精确错误代码:异常:UrlFetch调用https://docs.google.com/spreadsheets/d/ *******/导出?pdf格式

有什么帮助吗?先谢谢你

共有1个答案

杜俊晤
2023-03-14

这个问题已经在谷歌的问题跟踪器上提交了。推荐大家给它“打星星”,增加知名度。

 类似资料:
  • 我在同一列中有几个单元格,我想检查它们是否为空。 如果有空单元格,请添加以下文本。。。 如果没有空单元格,请忽略。。。 由于某种原因,我无法让它返回单元格的值。命令编辑器告诉我以下错误: 这是我的代码: 从昨天开始,我一直在检查代码,尝试其他方法,但我总是在.getValue()和.getValues方面遇到问题​() 最后,我来到这里,请求帮助,看看该领域的专家是否能启发我。 非常感谢你

  • 在继续使用GoogleApps脚本构建Google电子表格的过程中,我已经完成了获取Bittrex和Poloniex余额的工作,但无法使用Cryptopia。 下面是我与Bittrex将JSON对象数组映射到字符串的斗争的链接 以下是官方API链接:https://www.cryptopia.co.nz/Forum/Thread/256 以下是一些例子: https://www.cryptopia

  • 今天我一直在玩谷歌应用程序脚本,我正在尝试编写一些自定义电子表格函数。我做了一些搜索,但找不到我的问题的答案。 我知道,在谷歌电子表格中,您可以在电子表格的单元格中使用ImportRange,如下所示: 我的问题是,有没有可能在谷歌应用程序脚本中做类似的事情?如果有,怎么做? 我想从另一个电子表格上的工作表(而不是脚本将驻留的电子表格上的工作表)导入一系列单元格。

  • 我使用一个简单的脚本来删除1天后所有标有“摄像头”的电子邮件。这已经奏效好几个月了。我没有改变它,但它突然停止工作。 该脚本仍有在我的Gmail上运行的权限,但已停止。 感谢任何建议。 脚本是; 谢了山姆

  • 我在这里关注hello world: https://developers.google.com/apps-script/guides/rest/quickstart/target-script 然后我用新功能更新脚本,并使用Publish-将其发布为新版本(v2) 使用此v2,我的执行API客户端(使用(Java)[https://developers.google.com/apps-scrip

  • 我一直在努力对我的数据进行自动排序(根据第二行第一列数据进行升序),我通过在线搜索找到了一些提示,但遇到了一个错误,似乎我无法通过网络找到答案。 下面是一个场景: 我有两张床单,一张 这是床单 这是第二张 请注意,两张表中的列lastname和code相同,不同之处在于列的性别(在下拉列表中格式化) 我发现一个脚本似乎可以工作,但我不能完全正常工作,下面是我运行脚本后的输出。 注意红色框中的列,似