首页 > 解决方案 > 谷歌工作表功能 UrlFetchApp - 调用过多和错误

问题描述

我有一个包含数百个数据的谷歌表,每天刷新一次。为了刷新这些数据,我使用了四个不同的函数,每个函数都使用 Urlfetchapp 进行外部 API 调用。

我注意到某些单元格由于调用和刷新过多而出错。我使用了缓存,但似乎无法解决问题

    function div(symbol,x) {
  var url = 'https://example.com'+symbol+'';

    var params = { 
        headers: { 
            'Content-Type': "application/json", 'Accept':           "application/json",
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.97 Safari/537.36'
        },
        muteHttpExceptions: true,
        method: "GET",
        contentType: "application/json",
        validateHttpsCertificates: false,
    };

  var cache = CacheService.getScriptCache();
  var result = cache.get(url);

    var response = UrlFetchApp.fetch(url, params);
    var html = response.getContentText();
    const j_obj = JSON.parse(html);
    cache.put(url, j_obj, 86400);

 // coupon  
 var coupon = j_obj["data"]["0"]["attributes"]["coupon"];

// coupon2
var coupon2 = j_obj["data"]["0"]["attributes"]["coupon2"];

// Croissance moyenne sur 5 ans
var coupon3 = j_obj["data"]["0"]["attributes"]["coupon3"];

if (x == "coupon"){return coupon;}
if (x == "coupon2"){return coupon2;}
if (x == "coupon3"){return coupon3;}
}

我在每个单元格中插入了对该函数的调用。例如:=div(b2;"coupon"), =div(c2;"coupon")....=div(b3;"coupon2")

我认为同时对 api 的调用太多并且它饱和了。有没有办法每天只刷新一次单元格?

你看到其他解决方案了吗?

谢谢

标签: apigoogle-sheets-formulaurlfetch

解决方案


推荐阅读