Google apps script 谷歌应用程序脚本-应用程序未经验证,@OnlyCurrentDoc会大幅降低脚本速度
我有一个电子表格,它通过基于时间的触发器上的应用程序脚本从API获取数据,其他用户可以复制它来查看自己的数据(成千上万的人正在使用它)。该脚本非常简单,它通过UrlFetchApp.fetch()获取数据并将其放入电子表格中,并且它有一个函数,人们可以在首次复制电子表格后调用该函数来设置基于时间的触发器(触发器无法复制) 几个月前,制作副本的用户在授权应用程序脚本运行时会遇到“此应用程序未验证”屏幕。我知道这是由于谷歌改变了安全性,但我无法找到一种方法来正确地摆脱未经验证的状态。这就是我所尝试的:Google apps script 谷歌应用程序脚本-应用程序未经验证,@OnlyCurrentDoc会大幅降低脚本速度,google-apps-script,Google Apps Script,我有一个电子表格,它通过基于时间的触发器上的应用程序脚本从API获取数据,其他用户可以复制它来查看自己的数据(成千上万的人正在使用它)。该脚本非常简单,它通过UrlFetchApp.fetch()获取数据并将其放入电子表格中,并且它有一个函数,人们可以在首次复制电子表格后调用该函数来设置基于时间的触发器(触发器无法复制) 几个月前,制作副本的用户在授权应用程序脚本运行时会遇到“此应用程序未验证”屏幕。我知道这是由于谷歌改变了安全性,但我无法找到一种方法来正确地摆脱未经验证的状态。这就是我所尝试的
@OnlyCurrentDoc
添加到电子表格顶部。这在技术上是可行的,但仅添加@OnlyCurrentDoc
会导致脚本的运行时间从4秒变为180秒@OnlyCurrentDoc
代码段的情况下运行更长时间:
/**
* @OnlyCurrentDoc
*/
function CreateTrigger() {
// First delete old triggers
var allTriggers = ScriptApp.getProjectTriggers();
for (var i = 0; i < allTriggers.length; i++) {
ScriptApp.deleteTrigger(allTriggers[i]);
}
// Then create new triggers
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var interval = sheet.getRange("RefreshSetting").getValue().slice(0,2);
ScriptApp.newTrigger("Fetch").timeBased().everyMinutes(interval).create();
ScriptApp.newTrigger("Refresh").forSpreadsheet(sheet).onEdit().create();
// Then give user feedback of success
if (ScriptApp.getProjectTriggers().length == 2) {
sheet.getRange('Settings!B24').setValue('The sheet is automatically refreshing!');
sheet.getRange('Settings!B24').setBackground('#b6d7a8');
} else {
sheet.getRange('Settings!B24').setValue('Click here to start automatic refreshing!');
sheet.getRange('Settings!B24').setBackground('#ea9999');
}
}
/**
*@OnlyCurrentDoc
*/
函数CreateTrigger(){
//首先删除旧触发器
var allTriggers=ScriptApp.getProjectTriggers();
对于(var i=0;i
有没有人知道有什么方法可以阻止“未验证的应用程序”消息出现在我的场景中,或者为什么@OnlyCurrentDoc
标志会使脚本速度减慢很多(基本上使其无法使用)
谢谢你的帮助 这是您在测试应用程序时的预期行为。如果要删除此邮件,可以: