Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google drive api 使用驱动API在驱动器中的电子表格上运行Google脚本_Google Drive Api - Fatal编程技术网

Google drive api 使用驱动API在驱动器中的电子表格上运行Google脚本

Google drive api 使用驱动API在驱动器中的电子表格上运行Google脚本,google-drive-api,Google Drive Api,我有一个web应用程序,大多数新用户正在从另一个平台导入主机数据。另一个平台将数据导出为Excel电子表格。我需要清理电子表格并将其导出为JSON(或csv),以便将其导入到我的应用程序中 为了实现这一点,我创建了一个服务,用户可以将Excel电子表格上传到我的驱动器,然后将其转换为Google电子表格。我已经编写了一个名为Cleanup.gc的Google脚本,它也驻留在我的驱动器中,用于清理数据并对其执行一些操作 到目前为止,我能够使用DriveAPI自动上传用户电子表格。上传完成后,它会发

我有一个web应用程序,大多数新用户正在从另一个平台导入主机数据。另一个平台将数据导出为Excel电子表格。我需要清理电子表格并将其导出为JSON(或csv),以便将其导入到我的应用程序中

为了实现这一点,我创建了一个服务,用户可以将Excel电子表格上传到我的驱动器,然后将其转换为Google电子表格。我已经编写了一个名为Cleanup.gc的Google脚本,它也驻留在我的驱动器中,用于清理数据并对其执行一些操作

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

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

我已经浏览了很多页的谷歌API文档,但没有找到任何与我描述的内容相符的内容。这个功能存在吗?如果没有,是否有一种智能的方法可以使用谷歌脚本触发器来完成同样的事情

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

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
            };
        };

我终于找到了一个解决方案,在应用程序脚本API文档的最后一部分,在“REST执行API”下

解决方案是使用:

POST https://script.googleapis.com/v1/scripts/{scriptId}:run
您可以在POST请求正文的参数数组中传递工作表的id。 这里有一个链接到

更新


和。请注意,在使用API调用脚本之前,您必须先从Google Drive中将脚本发布为API可执行文件。

没有oauth的情况下,更简单的方法是将另一个脚本发布为匿名服务