【发布时间】:2021-05-18 07:46:47
【问题描述】:
我有 2 个谷歌网络应用程序。 第一个包含 2 个文本框,用户在其中插入用户名和密码。如果被接受,这些信息将传递到第二个应用程序 url。 第二个应用程序使用 google.visualization.query 提取来自 google 电子表格的数据。我可以使用 select 和 where 查询,而不会出现字符串或数字等固定值的问题,但我不能使用 app url 中包含的信息。 我的目的是根据应用 url 中包含的邮件地址查询我的电子表格,这样我就可以只向用户显示他们自己的数据。 在我的 html 文件中的脚本下方:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="https://www.gstatic.com/charts/loader.js"></script>
<script>
google.load('visualization', '1.0', {packages: ['corechart','table']});
google.setOnLoadCallback(loadEditor);
function loadEditor() {
var queryString = encodeURIComponent("select A, T where T="");
var SSID = "xxxxxxxxxMPgJx3gQ" //My spreadsheet ID
var SHEET_NAME = "FOGLIO ORE"
var query = new google.visualization.Query('https://spreadsheets.google.com/tq?key='+SSID+'&sheet='+SHEET_NAME+'&oauth_token=<?=ScriptApp.getOAuthToken()?>&headers=1&tq=' + queryString);
query.send(handleSampleDataQueryResponse);
}
function handleSampleDataQueryResponse(response) {
console.log(response);
var data = response.getDataTable();
var chartTbl = new google.visualization.Table(document.getElementById('dataTable'));
chartTbl.draw(data);
}
</script>
这里是 doGet:
function doGet(request) {
var params = JSON.parse(JSON.stringify(request));
var uname = params.parameter.username;
var email = params.parameter.email;
var imgUrl = params.parameter.imgUrl;
var default_imgUrl = "https://www.pngfind.com/pngs/m/381-3819326_default-
avatar-svg-png-icon-free-download-avatar.png";
var html = HtmlService.createTemplateFromFile('HTML').evaluate().getContent();
html = html.replace(default_imgUrl, imgUrl);
html = html.replace('<a id="user_name">User Name</a>','<a id="user_name">' +
uname + '</a>');
html = html.replace('<a id="email">email</a>','<a id="email">' + email +
'</a>');
return HtmlService.createHtmlOutput(html)
.setTitle('PRESENZE | ' + uname);
output.token = ScriptApp.getOAuthToken();
};
【问题讨论】:
-
你能提供你的 doGet() 函数吗?
-
对不起,我想我以错误的方式发布了答案????我已经回答了我自己...
-
感谢您的功能。我不确定您所说的
I can't use informations cointained in app url是什么意思,您从工作表中提取的信息在哪里? -
当用户在第一个应用程序中编译文本框并单击一个按钮时,会打开第二个应用程序,其 url 如下所示:script.google.com/a/macros/polo9.org/s/… 我想使用 url 中显示的电子邮件来过滤电子表格中的数据.
-
看起来正确,网络应用程序中发生了什么?另外,你有
JSON.parse(JSON.stringify(request))有什么原因吗?好像你可以直接引用参数:uname = request.parameter.username等
标签: javascript google-apps-script google-sheets-api