首页 文章

使用Drive API在 Cloud 端硬盘中的电子表格上运行Google脚本

提问于
浏览
0

我有一个Web应用程序,大多数新用户从其他平台导入hostorical数据 . 另一个平台将数据导出为Excel电子表格 . 我需要清理电子表格并将其导出为JSON(或csv),以便将其导入我的应用程序 .

为此,我创建了一项服务,用户可以将Excel电子表格上传到我的 Cloud 端硬盘,然后转换为Google电子表格 . 我写了一个名为Cleanup.gc的Google脚本,它也驻留在我的 Cloud 端硬盘中,可以清理数据并对其执行一些操作 .

到目前为止,我可以使用Drive API自动上传用户电子表格 . 上传完成后,它会发回一个ID,从中可以识别电子表格 .

此时我想做的是通过适当的API调用Cleanup.gc脚本,以便在新上传的电子表格上执行 . 完成后,我会继续将数据导入我的应用程序 .

我查看了许多Google API文档页面,但是我没有找到任何能够完成我所描述的内容 . 这个功能是否存在?如果没有,是否有一种智能方式可以使用Google Script触发器来完成同样的事情?

这是我目前拥有的代码,它在用户的浏览器中运行:

var token; //pre-generated Google Auth token passed from server
var xhr = new XMLHttpRequest();
        xhr.open("POST", 'https://www.googleapis.com/upload/drive/v2/files?uploadType=media&convert=true', true);
        xhr.setRequestHeader('Authorization', 'Bearer ' + token);
        xhr.setRequestHeader('Content-Type', 'application/vnd.ms-excel');
        xhr.onload = function() {
            if (xhr.status === 200) {
                var id = xhr.response.id;
                // NOW I NEED TO CALL MY .gc SCRIPT ON THIS ID
            };
        };

1 回答

  • 0

    我终于在“REST执行API”下找到了一个解决方案,它隐藏在apps-script API文档的最后一部分中 .

    解决方案是使用:

    POST https://script.googleapis.com/v1/scripts/{scriptId}:run
    

    您可以在POST请求正文的参数数组中传递工作表的ID . 这是page in the documentation的链接 .

    UPDATE

    another link that describes the same thing . 请注意,您必须先在Google Cloud 端硬盘中将脚本发布为API可执行文件,然后才能使用API调用它 .

相关问题