有没有人知道如何使用google-api-javascript-client对fusiontables API的importrows方法做成功请求。我有其他请求工作,例如列出某个表的列。所以我很确定身份验证很好。
function makeApiCall() {
gapi.client.load('fusiontables', 'v1', function() {
var request = gapi.client.fusiontables.column.list({
'tableId': tableId
});
request.execute(function(resp) {
alert(resp.totalItems);
});
});
}
这是我用来导入的代码(不起作用)。为清楚起见,我尝试在此只导入一条记录:
function makeApiCallImportRows() {
gapi.client.load('fusiontables', 'v1', function() {
var request = gapi.client.fusiontables.table.importRows({
'tableId': tableId,
'uploadType' : 'media',
'resource': {
'media': {
'contentType': 'application/octet-stream',
'data': 'aa,1,ds,01-01-2013'
}
}
});
request.execute(function(resp) {
//only in ff:
alert(resp.toSource());
});
});
}
警报然后说:
({error:{errors:[{domain:“fusiontables”,reason:“badImportInputEmpty”, 消息:“内容为空。”}],代码:400,消息:“内容为 空的。“}})
显然我的导入是空的。我的语法应该是什么?我在fusiontables文档中读到应该在请求正文部分中指定CSV数据,但我不知道如何使用gapi javascript库。
答案 0 :(得分:3)
对于那些感兴趣的人。这是做到这一点的方法:
function makeApiCallImportRows() {
var request = gapi.client.request({
'path': '/upload/fusiontables/v1/tables/'+tableId+'/import',
'method': 'POST',
'params': {'uploadType': 'media'},
'headers' : {'Content-Type' : 'application/octet-stream'},
'body': '9,9,9,2013\n8,8,8,2014\n'
});
request.execute(function(resp) {
alert(resp.toSource());
});
}