在过去24小时内,谷歌应用程序脚本或可视化API的任何变化

Anything change with Google Apps Scripts or Visualization API in the last 24 hours?

本文关键字:可视化 API 变化 任何 脚本 应用程序 24小时 过去 谷歌      更新时间:2024-02-26

2016年4月7日星期四中午左右,我失去了一个Google Script WebApps的所有新实例的功能。

我使用google.visualization.Query(。。。from从JavaScript广泛调用,用于快速搜索大型Google Sheets文件。

截至本文撰写之时,一个先前加载的webapp实例仍在成功运行,但所有新加载的实例都失败了。我已经提取了该工作实例的源代码,它与不起作用的实例完全相同。我已经创建了一个新的项目,并且新的项目实例(具有相同的代码)也在所有浏览器中失败。

我很困惑。。

这是我怀疑的一段代码。这是一个递归函数,它在一个电子表格(构建和构建)上查询两张表,然后从不同的电子表格(归档)中查询另一张表,并将结果设置为3个数据表。

function queryThings(response)
{
    // If this is the first call to query 
    if(response == null)
    {
        sessionStorage.setItem("qIndex_H", "0");
        // Building Query
        var query = new google.visualization.Query(s_thingsBuilding + '&tq=select+*+where+LOWER(' + key1 + ')+contains+%27' + sessionStorage.getItem("stringInput") + '%27');
        query.send(querythings);
        return;
    }
    // if This is the second call
    if(sessionStorage.getItem("qIndex_H") == "0")
    {
        sessionStorage.setItem("qIndex_H", "1");
        //Store build sheet dataTable in sessionStorage 
        sessionStorage.setItem("thingTable1", response.getDataTable().toJSON());
        // Show or hide the div
        if(response.getDataTable().getNumberOfRows() > 0)
            $("#thingsBuilding").show();
        else
            $("#thingsBuilding").hide();
        var query = new google.visualization.Query(s_thingsBuilt + '&tq=select+*+where+LOWER(' + key1 + ')+contains+%27' + sessionStorage.getItem("stringInput") + '%27');
        query.send(querythings);
        return;
    }
    // if This is the third call
    if(sessionStorage.getItem("qIndex_H") == "1")
    {           
        sessionStorage.setItem("qIndex_H", "2");
        //Store build sheet dataTable in sessionStorage 
        sessionStorage.setItem("thingTable2", response.getDataTable().toJSON());
        // Show or hide the div
        if(response.getDataTable().getNumberOfRows() > 0)
            $("#thingsBuilt").show();
        else
            $("#thingsBuilt").hide();
        var query = new google.visualization.Query(s_thingsArchive + '&tq=select+*+where+LOWER(' + key1 + ')+contains+%27' + sessionStorage.getItem("stringInput") + '%27');
        query.send(querythings);
        return;
    }
    sessionStorage.setItem("qIndex_H", "0");
    var dt1 = new google.visualization.DataTable(sessionStorage.getItem("thingTable1"));
    var dt2 = new google.visualization.DataTable(sessionStorage.getItem("thingTable2"));
    // Show or hide the div
    if(response.getDataTable().getNumberOfRows() > 0)
        $("#thingsArchive").show();
    else
        $("#thingsArchive").hide();
    if(dt1.getNumberOfRows() + dt2.getNumberOfRows() + response.getDataTable().getNumberOfRows() == 0)
        $("#thingsDiv").hide();
    setTable_DT(dt1, "thingsBuilding");
    setTable_DT(dt2, "thingsBuilt");
    setTable_DT(response.getDataTable(), "thingsArchive");
}

控制台输出:

未捕获错误:缺少对请求id:0VM60 userCodeAppPanel:170的查询
未捕获的类型错误:无法读取nullqueryThings@VM60 userCodeAppPanel:170R.eC@format+en,default+en,ui+en,corechart+en的属性"toJSON"。I.js:288xw@format+n,default+n,ui+n,corechart+en。I.js:283VM60 userCodeAppPanel:243

未捕获的类型错误:无法读取null的属性"toJSON"

在过去,我的谷歌应用程序脚本代码崩溃了几个小时,只是为了让功能自行恢复。有人知道API最近的任何更改可能会影响我的代码吗?我不认为它与浏览器有关,因为它在IE、Firefox和Chrome上都失败了。之前加载的一个正在工作的实例已加载到Chrome上。不可否认,我在这个文件中并没有太多的错误检查代码,但消除过程让我怀疑是否更新了应用程序脚本或可视化API。

谢谢

最大

我错误地加载了"Table"answers"Corechart"可视化包。

诚然,它相当草率,但我仍然不确定为什么昨天有效,但今天不行。

google.load('visualization', '1', {packages: ['corechart']});
google.load("visualization", "1.1", {packages:["table"]});

已替换为

google.load("visualization", "1.1", {packages:["table", "corechart"]});

我的猜测是"Corechart"包被"Table"包重写了。