UrlFetchApp.fetch(URL).getContentText()突然不起作用,尽管没有任何更改



我有一个非常简单的谷歌脚本,它可以从互联网上获取CSV文件并将其放入谷歌文档中。之前和之后都有更多的问题,但问题出现在这里:

var csvUrl = "https://data.cdc.gov/resource/muzy-jte6.csv?$limit=6000";
var csvContent = UrlFetchApp.fetch(csvUrl).getContentText();

它每晚自动运行,在过去的六个月里一直运行,没有出现任何问题。突然之间,它不再起作用了。脚本编辑器没有提供任何理由。该链接完全有效,并且仍然有效。我在不同的网站上用不同的CSV链接进行了尝试,结果出现了同样的问题。

当我运行脚本时,它只说:

异常:意外错误:https://data.cdc.gov/resource/muzy-jte6.csv?$limit=6000(第8行,文件"代码"(解除

正如我所提到的,自夏天以来,脚本已经完美地工作了150多次,而且它没有改变——文档没有改变,API链接也没有改变。我唯一的猜测是,我的谷歌账户上有一些权限更改,但该应用程序仍然拥有我谷歌账户所需的所有权限。

请帮助我理解为什么这个脚本不再有效,以及我如何让它重新工作。

我也有同样的情况。当时,我可以注意到,当谷歌电子表格的内置功能用于URL时,可以检索值。在这种情况下,作为当前的解决方法,我使用了以下流程。

  1. 给出=IMPORTDATA(URL)的一个公式
  2. 从图纸中检索值

当以上流反映到https://data.cdc.gov/resource/muzy-jte6.csv?$limit=6000的URL时,它变成如下。

示例脚本:

function myFunction() {
const url = "https://data.cdc.gov/resource/muzy-jte6.csv?$limit=6000";  // This is your URL.
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
sheet.clear();
const range = sheet.getRange("A1");
range.setFormula(`=IMPORTDATA("${url}")`);
SpreadsheetApp.flush();
const values = sheet.getDataRange().getValues();
range.clear();
console.log(values)
}
  • 在这个示例脚本中;Sheet1";使用。因此,请根据您的实际情况进行修改
  • 当运行上述脚本时,URL中的值将作为values的二维数组检索
  • 在这个答案中,我使用了IMPORTDATA。但对于每种情况,其他功能可能是合适的。那样的话,请检查一下

注意:

  • 这是当前的解决方法。所以当这个问题被删除后,我认为你可以使用你的原始脚本

参考文献:

  • IMPORTDATA
  • setFormula((

最新更新