Javascript 在Google Apps脚本Web App中使用Google Visualization API显示GSheet范围时出错
我正试图通过GoogleApps脚本Web App使用GoogleTableVisualization API显示一个GoogleSpreadsheet范围。我计划将这个Web应用程序部署到一个Google网站上。当我将代码复制到Google Apps脚本Web应用程序项目并部署Web应用程序时,查询响应为“错误请求[400]”。如何进一步调试 替代解决方案:Javascript 在Google Apps脚本Web App中使用Google Visualization API显示GSheet范围时出错,javascript,google-apps-script,google-visualization,google-sites,Javascript,Google Apps Script,Google Visualization,Google Sites,我正试图通过GoogleApps脚本Web App使用GoogleTableVisualization API显示一个GoogleSpreadsheet范围。我计划将这个Web应用程序部署到一个Google网站上。当我将代码复制到Google Apps脚本Web应用程序项目并部署Web应用程序时,查询响应为“错误请求[400]”。如何进一步调试 替代解决方案: 手动操作:Google站点有一个小工具可以将一个Gspreadsheet范围拉到网页上,但我想用编程的方式为70个不同的范围和页面做这
- 手动操作:Google站点有一个小工具可以将一个Gspreadsheet范围拉到网页上,但我想用编程的方式为70个不同的范围和页面做这件事
- 纯谷歌应用程序脚本:我可以通过编程创建包含表格小工具的网页模板副本,并编辑表格范围。在编辑HTML内容时,有一个已知的问题会破坏小工具(google apps脚本问题#572)
函数绘图图(){
变量键='1miOxJ3jPCLE66mWcZmd2q-1YAu6so-GbxjcmIDtXUV4';
var-GID=0;
风险值范围='A3:h18';
变量queryString=https://docs.google.com/spreadsheets/d/“+key+”/gviz/tq?gid='+gid+'&range='+range;
//设置数据源
var query=newgoogle.visualization.query(queryString);
//使用回调函数发送查询
发送(handleQueryResponse);
}
函数handleQueryResponse(响应){
//处理查询错误
if(response.isError()){
警报('查询中的错误:'+response.getMessage()+'+response.getDetailedMessage());
返回;
}
//绘制图表
var data=response.getDataTable();
var chart=new google.visualization.Table(document.getElementById('chart_div'));
图表绘制(数据);
}
load('visualization','1',{packages:['table'],callback:drawChart})代码>
您没有为应用程序正确设置沙箱,因此caja清理正在剥离jsapi
更改:
函数doGet(){
var html=HtmlService.createTemplateFromFile(“Index”).evaluate();
html.setTitle(“动态网页”);
返回html;
}
致:
函数doGet(){
var html=HtmlService.createTemplateFromFile(“Index”).evaluate();
setTitle(“动态网页”).setSandboxMode(HtmlService.SandboxMode.IFRAME);
返回html;
}
您可以从include()
函数中完全删除沙箱语句,因为它是您需要沙箱处理的应用程序。最好删除include()
,并在Index.html中使用它: