Google Apps脚本和Google Fusion Tables。无效证件

时间:2013-05-15 19:27:51

标签: google-apps-script google-fusion-tables

我正在尝试将一行数据添加到Fusion Table。似乎有OAuth的麻烦。我通过请求令牌并收到一个并存储它。这是用于执行此操作的代码:

var AUTHORIZE_URL = 'https://accounts.google.com/o/oauth2/auth';

function getURLForAuth(){
 return AUTHORIZE_URL + '?response_type=code&client_id='+CLIENT_ID+'&redirect_uri='+REDIRECT_URL +'&scope=https://www.googleapis.com/auth/fusiontables&state=/profile';  
}

在允许访问google网站页面后,此代码为我提供了一个页面,我可以从中获取令牌并存储它。然后,我尝试使用此标记将一些值插入到具有以下代码的表中:

 function _submitLog(e){
 var rowToAdd = [e.parameter.empName,e.parameter.jobName,e.parameter.taskName,e.parameter.hoursBox, e.parameter.date]; 
 runSQL("INSERT INTO "+TABLE_NAME +" (logNum,EmployeeName,JobName,TaskName,Hours,Date) VALUES (" +"'" +e.parameter.empName +"'" +"," +"'"+e.parameter.jobName +"'"+"," +"'"+e.parameter.taskName+"'" +"," +"'"+e.parameter.hoursBox+"'" +"," +"'"+e.parameter.date+"'" +")")  
}


 function runSQL(sql){

 var getDataURL = 'https://www.googleapis.com/fusiontables/v1/query?sql='+sql;
 var dataResponse = UrlFetchApp.fetch(getDataURL,getUrlFetchOptions()).getContentText(); 
 Logger.log(dataResponse);
 return dataResponse;
}


function getUrlFetchOptions() {
var token = UserProperties.getProperty(tokenPropertyName);
Logger.log(token);
return {
"method" : "post",
"ContentType" : "application/json",
"headers":{"Authorization" :"Bearer "+token,
           "Accept" :"application/json"}


 };
}
我确定我错过了一些非常明显的东西,但我已经盯着看了好几个小时而且无法想出来。 任何帮助,甚至是我可能已经消除的最佳实践都会很棒。

2 个答案:

答案 0 :(得分:2)

看起来你错过了一些细节,但不要把自己打倒。看看这个出色的Fusion Tables Library,其中包含一个函数doOAuth(),可以为您的脚本设置授权,而无需自己编写。

您需要使用您获得的令牌设置ScriptProperty - 指令随库一起提供。然后从调试器中调用doAuth()(两次),然后就可以开始了。

我应该从詹姆斯F那里获得版税!

答案 1 :(得分:1)

点击Here以获取从Google应用脚本发布到Fusion Tables API的基本完整示例。