2013-05-18 112 views
0

我似乎無法正確地將行導入Google Fusion。我總是得到一個503後端錯誤。我的Google Apps腳本代碼如下。在Fusion Tables中導入行失敗

變種getDataURL = 'https://www.googleapis.com/fusiontables/v1/tables/{TABLEID} /進口鍵=?' + {apiKey};

var ssDown = SpreadsheetApp.openById({Spreadsheet ID})。getDataRange()。getValues();

變種選項= { 「方法」: 「後」, 「的contentType」: 「應用/ JSON」, 「報頭」:{ 「授權」: 「承載」 + {令牌}, 「Accept」:「application/json」, }, 'encoding'='auto-detect', 'payload'= ssDown.toString(); } };

var output = UrlFetchApp.fetch(getDataURL,options).getContentText();

+0

我已經看到這個後端錯誤,但在腳本無關與Fusion表。查看問題2759(https://code.google.com/p/google-apps-script-issues/issues/detail?id=2759) – Srik

+0

答案來自Fusion Tables,而不是GAS。我已經複製下面的錯誤。 [13-05-19 11:18:20:362 BST] { 「錯誤」:{ 「錯誤」:[{ 「結構域」: 「全局」, 「原因」: 「backendError」 , 「消息」: 「後端錯誤」 } ], 「代碼」:503, 「消息」: 「後端錯誤」 } } – ajb1970

回答

0

這個問題是由我粗心的編碼造成的。正確的代碼是:

var getDataURL = 'https://www.googleapis.com/upload/fusiontables/v1/tables/{tableID}/import'; 
var options = { "method" : "post", 
       "contentType" : "application/octet-stream", 
       "headers" : { 
       "Authorization" : "Bearer " + {token}, 
       "Accept" : "application/json", 
       }, 
      } 
var ssDown = SpreadsheetApp.openById({sheetID}).getDataRange().getValues().toString(); 
options.payload = ssDown; 
var output = UrlFetchApp.fetch(getDataURL,options).getContentText();