这是很新的内容,但请尝试一下。我正在尝试设置一个Arduino运动传感器来触发脚本。此时,我的目标是通过URL触发脚本。我在下面的代码中找到了我正在处理的代码,但是在运行/调试时,我继续遇到此错误。
TypeError:无法从未定义中读取属性“ parameter”。 (第4行,文件“代码”)
我一直在研究e.parameter对象,但未能取得进展
function doGet(e) {
Logger.log(e)
var passedString,whatToReturn;
passedString = e.parameter.searchStringName;
if (passedString === 'tylog') {
whatToReturn = tylog(); //Run function One
};
return ContentService.createTextOutput(whatToReturn);
};
var mns = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Monster")
var tyl = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("tyLog")
var tyd = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("tyData")
var twl = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("twLog")
var twd = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("twData")
var tym = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("tyMaster")
var twm = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("twMaster")
var test = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("test")
var tydate = tyd.getRange('A2');
var tydur = tyd.getRange(2, 2);
// Start functions
function start() {
tyl.getRange('A1').setValue(new Date());
twl.getRange('A1').setValue(new Date());
}
//Log Typhoon ride
function tylog() {
tyl.getRange(tyl.getLastRow() + 1, 1).setValue(new Date());
}
//Log Twister ride
function twlog() {
twl.getRange(twl.getLastRow() + 1, 1).setValue(new Date());
}
//Send Data to both logs and clear
function tyclear() {
tyd.getRange('A2:H2').copyTo(tym.getRange(tym.getLastRow() + 1, 1), {contentsOnly: true});
twd.getRange('A2:H2').copyTo(twm.getRange(twm.getLastRow() + 1, 1), {contentsOnly: true});
tyl.getRange('A1:A100').clearContent();
twl.getRange('A1:A100').clearContent();
}
URL请求:
https://script.google.com/macros/s/AKfycbxC5zYevR1IhfFcUMjmIqUaQ1dKNHTm4mhmWBq_Rc9HgemJQ6Q/exec?searchStringName=tylog
我将其单独放入一个新项目中,但仍返回未定义的内容。
function doGet(e) {
var passedString,whatToReturn;
passedString = e.parameter.searchStringName;
if (passedString === 'functionOne') {
whatToReturn = functionOne(); //Run function One
};
return ContentService.createTextOutput(whatToReturn);
};
function functionOne() {
var something;
return ContentService.createTextOutput("Hello, world!"); }
答案 0 :(得分:1)
我相信您的网址应为{id:1, path:img-001.jpg, hasTag: true},
{id:2, path:img-002.jpg, hasTag: true},
{id:3, path:img-003.jpg, hasTag: false},
{id:4, path:img-004.jpg, hasTag: true}
考虑了一段时间后,要求从functionOne返回是没有意义的。我将客户端服务器通信与“获取”请求过程混在一起。对于大多数Get请求,该请求会建议某种类型的响应,因为一般而言,我们正在寻找要显示的某种类型的内容。在这种情况下,由于请求者是一台机器,因此可能不需要。
使用https://script.google.com/macros/s/AKfycbxC5zYevR1IhfFcUMjmIqUaQ1dKNHTm4mhmWBq_Rc9HgemJQ6Q/exec?searchStringName=functionOne
仅使我们能够从查询字符串中发送键/值对,我们可以对其进行恢复以重定向服务器操作。
答案 1 :(得分:0)
我相信您应该从脚本中删除第二个doGet()
。继续我的最后一条评论,我尝试访问您的URL,并很好奇为什么发生重定向而不是仅提供Content
。如果echo?
重定向结果返回了undefined
,则您应该有冲突的doGet()
函数。
更新:请忽略答案-绝对不是问题!