[英]Why is eval is not a function for other users
我想在我的工作表中为我的移动用户提供一个可点击的按钮。
我从https://medium.com/macadamscripts/create-button-in-google-sheets-mobile-2979579025ef获得帮助
我在 A 列中使用验证“Call_Customer”或“Call_Alt_No”进行了下拉。 用户只能编辑 A 列。
并做了以下功能
//
//
function on_Edit(e) {
//if (e.range.getA1Notation() == 'A1') {
if (/^\w+$/.test(e.value)) {
eval(e.value)();
e.range.clear();
//e.range.setValue("Calling");
}
//}
}
//
//
function Call_Customer(){
var ss=SpreadsheetApp.getActive();
var sht=ss.getActiveSheet()
var cr=sht.getActiveCell().getRow();
var cu=sht.getRange("K"+cr).getValue();
var ag=sht.getRange("J"+cr).getValue();
const url = 'https://api.servetel.in/v1/click_to_call'
const options = {
method: 'POST',
headers: {
Accept: 'application/json',
Authorization: 'xxx',
'Content-Type': 'application/json'
},
payload: JSON.stringify({agent_number: ag, destination_number: cu})
}
try {
const res = UrlFetchApp.fetch(url, options)
Logger.log(JSON.parse(res));
//ss.toast(JSON.parse(res));
}
catch (e) {
Logger.log('error' + e);
//ss.toast('error' + e);
}
}
//
//
function Call_Alt_No(){
var ss=SpreadsheetApp.getActive();
var sht=ss.getActiveSheet()
var cr=sht.getActiveCell().getRow();
var cu=sht.getRange("I"+cr).getValue();
var ag=sht.getRange("J"+cr).getValue();
const url = 'https://api.servetel.in/v1/click_to_call'
const options = {
method: 'POST',
headers: {
Accept: 'application/json',
Authorization: 'xxxx',
'Content-Type': 'application/json'
},
payload: JSON.stringify({agent_number: ag, destination_number: cu})
}
try {
const res = UrlFetchApp.fetch(url, options)
//console.log(JSON.parse(res))
//Browser.msgBox("Call Started");
}
catch (e) {
//console.error('error' + e);
//Browser.msgBox("Call failed");
}
}
我制作了一个可安装的触发器,因为简单的触发器无法调用外部服务。
Call_Customer 函数在我的手机上运行良好 - 我是所有者。 但它为其他编辑器在他们的手机上的工作表提供了错误(该错误在触发器日志中可用)
TypeError: eval(...) 不是 on_Edit 的函数(代码:33:20)
编辑使用 eval 有什么限制吗? 他们必须给予任何许可吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.