在 Fusion Tables 中导入行失败

Posted

技术标签:

【中文标题】在 Fusion Tables 中导入行失败【英文标题】:Import rows in Fusion Tables fails 【发布时间】:2013-05-18 22:36:35 【问题描述】:

我似乎无法将行正确导入 Google Fusion。我总是收到 503 后端错误。我的 Google Apps 脚本代码如下。

var getDataURL = 'https://www.googleapis.com/fusiontables/v1/tables/tableID/import?key='+apiKey;

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

var 选项 = “方法”:“发布”, “contentType”:“应用程序/json”, “标题”: "授权" : "承载" + token, “接受”:“应用程序/json”, , '编码' = '自动检测', '有效负载' = ssDown.toString(); ;

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

【问题讨论】:

我一直看到这个后端错误,但在脚本上与 Fusion 表无关。看看 issue 2759 (code.google.com/p/google-apps-script-issues/issues/…) 响应来自 Fusion Tables,而不是 GAS。我已经复制了下面的错误。 [13-05-19 11:18:20:362 BST] "error": "errors": [ "domain": "global", "reason": "backendError", "message": "后端错误" ], "code": 503, "message": "后端错误" 【参考方案1】:

问题是由于我的粗心编码造成的。正确的代码是:

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();

【讨论】:

以上是关于在 Fusion Tables 中导入行失败的主要内容,如果未能解决你的问题,请参考以下文章

Fusion Tables造型

Fusion Tables 图层 URL 请求限制(2048 个字符)

在点击事件时从 Google Fusion Tables 访问单个单元格值

Fusion Tables 不支持 CORS(跨源资源共享)?

Fusion Tables + Google Maps API,删除信息窗口/卡片/气球?

要遵循哪个 OAuth 流程? (Google Apps 脚本和 Google Fusion Tables API)