执行 Apps 脚本函数

借助 Apps Script API(以前称为 Apps Script Execution API),您可以远程执行您有权访问的脚本项目中的函数。您的应用可以调用指定的 Apps 脚本函数(如果需要,可为其提供输入参数),并接收返回的响应。

本页上的示例说明了如何使用 API 实现一些常见的执行操作。如需详细了解包括特殊授权要求,请参阅执行函数指南。

在这些示例中,占位符 scriptId 用于指明您应在何处提供脚本项目 ID。请按照以下步骤查找脚本 ID:

  1. 在 Apps 脚本项目中,点击左上角的项目设置图标
  2. 点击“脚本 ID”旁边的复制

执行函数

以下 scripts.run 请求会调用名为 listFolderContent 的 Apps 脚本函数,并向其传递云端硬盘 folderId 和整数 MAX_SIZE 作为参数。该函数在开发模式下执行,这意味着,无论将哪个版本部署为可执行文件,都会执行该函数的最新保存版本。

请求协议如下所示。执行函数指南介绍了如何使用 Google API 客户端库以不同语言实现运行请求。

POST https://script.googleapis.com/v1/scripts/scriptId:run
{
  "function": "listFolderContent",
  "parameters": [
    folderId,
    MAX_SIZE
  ],
  "devMode": true
}

在调用的 Apps 脚本函数完成后,对此请求的响应包含执行结果或错误响应。在此示例中,该函数会成功返回文件名数组:

{
  "response": {
    "result": [
      "fileTitle1",
      "fileTitle2",
      "fileTitle3"
    ]
  },
}

如果函数在执行 Apps 脚本期间遇到错误,响应可能如下所示:

{
  "response": {
    "error": {
      "code": 3,
      "message": "ScriptError",
      "details": [{
        "@type": "type.googleapis.com/google.apps.script.v1.ExecutionError",
        "errorMessage": "The script enountered an exeception it could not resolve.",
        "errorType": "ScriptError",
        "scriptStackTraceElements": [{
          "function": "listFolderContent",
          "lineNumber": 14
        }]
      }]
    }
  }
}