Google apps script 验证以使用Google Apps脚本查询融合表
我是Google应用程序域的成员,我试图使用代码示例查询融合表,但不断出现以下错误:Google apps script 验证以使用Google Apps脚本查询融合表,google-apps-script,google-fusion-tables,Google Apps Script,Google Fusion Tables,我是Google应用程序域的成员,我试图使用代码示例查询融合表,但不断出现以下错误: { "error": { "errors": [ { "domain": "global", "reason": "required", "message": "Login Required", "locationType": "header", "location": "Authorization" } ]
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
以下是我正在使用的代码:
function myFunction() {
//Fusion Table
var constructor = 'https://www.googleapis.com/fusiontables/v2/query?sql=';
var fusionTableID = '1pJk********UY5l';
var fusionTableAPIKey = 'AIza********AGV8'; // Browser API Key
var fusionTableQuery = 'SELECT * FROM ' + fusionTableID + '&key=' + fusionTableAPIKey;
var queryString = constructor + fusionTableQuery;
var response = UrlFetchApp.fetch(queryString);
var parsedResponse = JSON.parse(response.getContentText());
Logger.log(parsedResponse);
}
不幸的是,由于域设置,我无法与域外的人共享任何文件。我已经审阅了参考资料,但我不确定如何使其适应我正在做的事情
我可以使用Google提供的示例字符串使脚本正常工作,因此我相信代码是正确的:
https://www.googleapis.com/fusiontables/v2/query?sql=SELECT * FROM%201KxVV0wQXhxhMScSDuqr-0Ebf0YEt4m4xzVplKd4&key=AIzaSyAm9yWCV7JPCTHCJut8whOjARd7pwROFDQ
先谢谢你 您需要使用访问令牌或登录身份验证在请求中传递授权标头。它显示在您发布的页面中 无论如何,只使用Fusion Table advanced服务要容易得多。要启用它,请转到资源>高级谷歌服务>融合表API 如果您仍要手动执行呼叫。至少启用该服务并添加一些伪代码,以便应用程序脚本可以为您请求oAuth2作用域。e、 g
函数noNeedToRun()//仅用于触发作用域
FusionTables.Query.sql('foo')//虽然这比手动获取更容易
}
函数myFunction(){
//…相同的代码
var queryString=constructor+fusionTableQuery;
var response=UrlFetchApp.fetch(queryString{
标题:{//这是您缺少的内容
“授权”:“承载者”+ScriptApp.getOAuthToken(),
}
});
var parsedResponse=JSON.parse(response.getContentText());
Logger.log(parsedResponse);
}
谢谢,效果很好!我知道应用程序脚本应该处理oAuth,但无法启动屏幕。现在有道理了。。。期待探索FusionTables.Query.sql。现在这只是一个桥梁,我真正的问题是从谷歌脚本查询谷歌工作表服务器端。。。