中央データベースとしてgoolesフュージョンテーブルを使用する小さなGoogleChrome拡張機能を作成したいと思います。
既存のテーブルとデータ(GooleDoc-Websideを介して追加)の使用は非常にうまく機能します(SELECT、SHOW TABLES、DESCRIBE)が、変更を行おうとすると(このためには、「POST」リクエストが必要です)。「SQLパラメータがありません」というエラーが常に発生します。なぜこれが起こるのか私にはわかりません。私はすでにたくさん試しました(例えば、「テーブルtest3(A:number、B:number)を作成する」、挿入します。)
私が書いたコードは次のとおりです。
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
このエラーが発生し続けます(テーブルを作成しようとした場合も同じです)
助言がありますか?私は本当に混乱しています!