谷歌应用脚​​本UrlFetchApp.fetch限制?

Vig*_*ond 8 google-apps-script

我有一个简单的脚本,可以提取大约30,000个字符的JSON.

SyntaxError: Unexpected token: F (line 12)当我尝试用JSON.parse()或解析时,我得到了Utilities.jsonParse();

function refresh() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  sheet.clear();


  var text = UrlFetchApp.fetch("http://blablah/json");

  Logger.log(text.getContentText());

  //error SyntaxError: Unexpected token: F (line 12)
  json = JSON.parse(text);
)
Run Code Online (Sandbox Code Playgroud)

记录器只显示约59行JSON,但我被告知记录器有一个空间限制 - 但我不太确定它是什么.

在我自己的服务器上运行,JSON.parse解析数据就好了,jQuery get()也是如此.

所以我认为UrlFetchApp.fetch()只是无法获取长文件?

很难接受,我没有找到关于它的文件:(

Hen*_*reu 5

您可以在新的Apps脚本信息中心上查看UrlFetch和其他服务限制.根据我的经验,Logger.log对单个日志的限制要比UrlFetch更严格,UrlFetch可能正常运行,Logger.log没有显示它,而你遇到了其他问题.

尝试将getContentText结果放在其他位置,例如电子表格单元格.或者拆分它并在for循环中调用logger log.

您可能面临的一个错误(除了配额限制)是字符编码,getContentText有一个可选参数,您可以在其中通知页面的编码,您检查过吗?

  • 好的,我将此标记为答案,因为它帮助我找到了答案.是Logger.log(text.getContentText().length)吐出30k字符,并将它放入行单元格有整个事情.秘密是做值= text.getContentText(); 然后做JSON.parse(值) (2认同)