是否可以在 Google Sheet Add On 中创建时间驱动的触发器?

Is it possible to create time driven triggers in Google Sheet Add On?

我正在为 Google Sheet 开发一个插件。这样做时我遇到了以下异常

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。

所以我有两个问题要问

  1. 是否可以从 Google 应用脚本创建异步 UrlFetch?
  2. 如果不是,如何在 Google Sheet Add On 中创建时间驱动的触发器(另一种制作异步 UrlFecth 的方法)?

请帮忙。感谢任何帮助。

Google Apps 脚本是同步的。加载项可以使用基于时间的触发器,但它们每小时只能 运行 一次。

脚本中的 运行 时间为 6 分钟,如果可能,请等待 URLFetch return。它是同步的,它将等待调用的 return 值。

如果您确实需要异步调用,您不能等待 URLFetch return,使用每小时 运行 一次的触发器,或创建侧边栏并执行 API 在侧边栏的上下文中调用,那里有异步调用。