Google drive api 使用驱动API在驱动器中的电子表格上运行Google脚本
我有一个web应用程序,大多数新用户正在从另一个平台导入主机数据。另一个平台将数据导出为Excel电子表格。我需要清理电子表格并将其导出为JSON(或csv),以便将其导入到我的应用程序中 为了实现这一点,我创建了一个服务,用户可以将Excel电子表格上传到我的驱动器,然后将其转换为Google电子表格。我已经编写了一个名为Cleanup.gc的Google脚本,它也驻留在我的驱动器中,用于清理数据并对其执行一些操作 到目前为止,我能够使用DriveAPI自动上传用户电子表格。上传完成后,它会发回一个ID,从中可以识别电子表格 此时我想做的是通过适当的API调用Cleanup.gc脚本,以便在新上传的电子表格上执行它。完成后,我将继续将数据导入我的应用程序 我已经浏览了很多页的谷歌API文档,但没有找到任何与我描述的内容相符的内容。这个功能存在吗?如果没有,是否有一种智能的方法可以使用谷歌脚本触发器来完成同样的事情 以下是我当前拥有的代码,它在用户浏览器中运行:Google drive api 使用驱动API在驱动器中的电子表格上运行Google脚本,google-drive-api,Google Drive Api,我有一个web应用程序,大多数新用户正在从另一个平台导入主机数据。另一个平台将数据导出为Excel电子表格。我需要清理电子表格并将其导出为JSON(或csv),以便将其导入到我的应用程序中 为了实现这一点,我创建了一个服务,用户可以将Excel电子表格上传到我的驱动器,然后将其转换为Google电子表格。我已经编写了一个名为Cleanup.gc的Google脚本,它也驻留在我的驱动器中,用于清理数据并对其执行一些操作 到目前为止,我能够使用DriveAPI自动上传用户电子表格。上传完成后,它会发
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的情况下,更简单的方法是将另一个脚本发布为匿名服务