2015-10-20 34 views
0

我有一個網絡應用程序,大多數新用戶都從其他平臺導入hostorical數據。另一個平臺將數據導出爲Excel電子表格。我需要清理電子表格並將其導出爲JSON(或csv),以便將其導入到我的應用程序中。使用Drive API在雲端硬盤中的電子表格上運行Google腳本

爲了實現這一點,我創建了一項服務,用戶可以將Excel電子表格上傳到我的雲端硬盤,然後將其轉換爲Google電子表格。我寫了一個名爲Cleanup.gc的谷歌腳本,它也駐留在我的雲端硬盤中,它清理數據並對其執行一些操作。

到目前爲止,我可以使用Drive API自動上傳用戶電子表格。上傳完成後,它會發回一個可以識別電子表格的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 
      }; 
     }; 

回答

0

我終於找到了一個解決方案,埋在應用程序腳本API文檔的最後一節,在「REST執行API」。

的解決方案是使用:

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

可以傳遞的紙張的id參數陣列POST請求體英寸 這裏是page in the documentation的鏈接。

UPDATE

而且another link that describes the same thing。請注意,您必須先將您的腳本作爲Google Drive中的可執行文件發佈,然後才能使用API​​調用該腳本。

+0

沒有oauth的簡單方法是將另一個腳本作爲匿名服務發佈 –

相關問題