Я хотел бы написать небольшое расширение Google Chrome, в котором я использую таблицы gooles fusion в качестве центральной базы данных.
Использование существующих таблиц и данных (добавленных через GooleDoc-Webside) работает вполне нормально (SELECT, ПОКАЗАТЬ ТАБЛИЦЫ, ОПИСАТЬ), но если я пытаюсь внести какие-либо изменения (для этого мне нужен запрос "POST").Я всегда получаю следующую ошибку: «Отсутствует параметр sql». Понятия не имею, почему это происходит.Я уже много пробовал (например, «создать таблицу test3 (A: число, B: число)», вставить.)
Код, который я написал, следующий:
function Fusion(readyCallback) {
var myObject = {
URL : "https://www.google.com/fusiontables/api/query",
authToken : null,
doGET : function(command,callback) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("get"
,this.URL+"?sql="+encodeURI(command)
,true);
xmlhttp.setRequestHeader("Authorization"
,"GoogleLogin auth=" + this.authToken);
xmlhttp.onreadystatechange = function() { callback(xmlhttp.responseText); }
xmlhttp.send();
},
doPOST : function(command,callback) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("post"
,this.URL
,true);
xmlhttp.setRequestHeader("Authorization"
,"GoogleLogin auth=" + this.authToken);
xmlhttp.onreadystatechange = function() { callback(xmlhttp.responseText); }
xmlhttp.send("sql="+encodeURI(command));
}
}
// client login authentification
var email = "XXX@gmail.com";
var password = "XXX";
var loginURL = "https://www.google.com/accounts/ClientLogin?accountType=GOOGLE&Email="
+ encodeURI(email) + "&Passwd=" + encodeURIComponent(password)
+ "&service=fusiontables&Source=testing";
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("get",loginURL,true);
xmlhttp.onreadystatechange = function() {
var tmp = xmlhttp.responseText;
tmp = tmp.slice(tmp.search("Auth=") + 5, tmp.length);
tmp = tmp.replace(/\n/g, "");
tmp = tmp.replace(/\r/g, "");
myObject.authToken = tmp;
console.log("authentifiaction token status: "+xmlhttp.statusText);
if (readyCallback) {
readyCallback();
}
};
xmlhttp.send();
return myObject;
}
Если я дляпример попытаться сделать что-то вроде этого
mf.doPOST("INSERT INTO 2664928(ID,Text,Number) VALUES (2,'Hallo',3)",mc)
или этого
mf.doPOST("INSERT INTO 2664928(col4,col0,col1) VALUES (2,'Hallo',3)",mc)
с таблицей, описанной этим
column id,name,type
col4,ID,number
col0,Text,string
col1,Number,number
Я получаю эту ошибку (то же самое, когда я пытаюсь создать таблицу)
Есть предложения?Я действительно смущен!