我有一个非常简单的谷歌脚本,它可以从互联网上获取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时,可以检索值。在这种情况下,作为当前的解决方法,我使用了以下流程。
- 给出
=IMPORTDATA(URL)
的一个公式 - 从图纸中检索值
当以上流反映到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((