執行 Apps Script 函式

您可以使用 Apps Script API (舊稱 Apps Script Execution API),在您有權存取的指令碼專案中,遠端執行函式。應用程式可以呼叫特定的 Apps Script 函式,視需要提供輸入參數,並接收傳回的回應。

本頁的範例說明如何透過 API 執行一些常見的作業。如需詳細資訊 (包括特殊授權規定),請參閱「執行函式」指南。

在這些範例中,預留位置 scriptId 用於指出您要提供指令碼專案 ID 的位置。請按照下列步驟找出指令碼 ID:

  1. 在 Apps Script 專案中,按一下左上方的「專案設定」圖示
  2. 按一下「腳本 ID」旁的「複製」

執行一項函式

以下 scripts.run 要求會呼叫名為 listFolderContent 的 Apps Script 函式,並將 Drive folderId 和整數 MAX_SIZE 做為引數傳遞。函式會在開發模式下執行,也就是說,系統會執行函式的最新儲存版本,無論是以哪個版本部署可執行檔。

要求通訊協定如下所示。「執行函式」指南說明如何使用 Google API 用戶端程式庫,以不同語言實作執行要求。

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

在呼叫的 Apps Script 函式完成後,此要求的回應會包含執行結果或錯誤回應。在這個範例中,函式會成功傳回檔案名稱陣列:

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

如果函式在 Apps Script 執行期間發生錯誤,回應可能會像這樣:

{
  "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
        }]
      }]
    }
  }
}