google-apps-script - 尽管没有更改,UrlFetchApp.fetch(URL).getContentText() 突然无法正常工作

标签 google-apps-script google-sheets google-sheets-api google-apps-script-api

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

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

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

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

Exception: Unexpected error: https://data.cdc.gov/resource/muzy-jte6.csv?$limit=6000 (line 8, file "Code") Dismiss

正如我所提到的,该脚本自夏季以来已经完美运行了 150 多次,并且它没有改变,文档也没有改变,API 链接也没有改变。我唯一的猜测是我的 Google 帐户发生了一些权限更改,但该应用程序仍然拥有我的 Google 帐户所需的所有权限。

请帮助我理解为什么该脚本不再有效以及如何让它再次有效。

最佳答案

我遇到了同样的情况。那时,我注意到当 Google Spreadsheet 的内置函数用于 URL 时,可以检索值。在那种情况下,作为当前的解决方法,我使用了以下流程。

  1. 输入公式 =IMPORTDATA(URL)
  2. 从工作表中检索值。

当上述流程反射(reflect)到您的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。但对于每种情况,其他功能可能是合适的。在这种情况下,请检查它们。

备注:

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

引用资料:

关于google-apps-script - 尽管没有更改,UrlFetchApp.fetch(URL).getContentText() 突然无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65281808/

相关文章:

html - 对 bigquery.jobs.query 的 API 调用失败,错误为 : Access Denied: Project ppc-big-query: User does not have bigquery. jobs.create 权限

google-apps-script - 解析我从 UrlFetch 收到的 XML 数据

java - 谷歌电子表格 API : Empty all cells in sheet

php - 将本地 Excel.xlsx 文件转换为 Google 电子表格 Google DRIVE API

javascript - 谷歌表格 API : Read single cell value from public sheet

javascript - 将 jsPDF 与 Google Apps 脚本结合使用

javascript - 从 javascript 中的命名值中删除元素

javascript - 用于隐藏 Google 表格中的行的 Google 脚本

google-apps-script - 如何更改 Google 表格中图表的背景不透明度?

javascript - Google 脚本中的发件人姓名