执行 Apps 脚本函数

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

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

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

  1. 在 Apps Script 项目中,点击左上角的项目设置图标
  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
        }]
      }]
    }
  }
}