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