執行 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
        }]
      }]
    }
  }
}