我正在开发Google表格的附加内容。这样做时我遇到了以下异常
Exception: The add-on attempted an action that is not permitted in Test as add-on mode. To use this action, you must deploy the add-on.
以下是我遇到异常的代码要点
function initiateCall()
{
try
{
var sp = SpreadsheetApp.getActiveSpreadsheet();
var sheet_obj = sp.getSheetByName(SHEET_NAME);
var last_row = sheet_obj.getLastRow();
var result = "failure";
if(last_row >= 2)
{
Logger.log("Creating");
var trigger_id = ScriptApp.newTrigger('triggerToInitiateCall').timeBased().after(100).create();
Logger.log("Created");
setProperty("trigger_id", trigger_id.getUniqueId());
result = "success";
}//if
else
result = "validation_failure";
return result;
}//try
catch(e)
{
Logger.log("Exception=> "+e+" At Line Number "+e.lineNumber)
}//catch
}//initiateCall
注意: - 脚本在AuthMode.NONE模式下运行 - 脚本是独立脚本。
使用触发器的原因是使异步UrlFetch。
所以我有两个问题要问
请帮忙。任何帮助表示赞赏。
答案 0 :(得分:2)
Google Apps脚本是同步的。附加组件可以使用基于时间的触发器,但它们每小时只能运行一次。
脚本中的运行时间为6分钟,如果可能,只需等待URLFetch返回即可。它是同步的,它将等待调用的返回值。
如果你真的需要一个异步调用,你不能等待URLFetch返回,使用每小时运行一次的触发器,或者创建一个侧边栏并在侧边栏的上下文中执行API调用,你有异步调用。