Thực thi các hàm Google Apps Script

API Google Apps Script cho phép bạn thực thi từ xa một hàm trong dự án tập lệnh mà bạn có quyền truy cập. Ứng dụng của bạn có thể gọi một hàm Apps Script nhất định, cung cấp các tham số đầu vào nếu cần và nhận phản hồi.

Các ví dụ trên trang này minh hoạ cách thực hiện các thao tác thực thi phổ biến bằng API. Để biết thêm thông tin, bao gồm cả các yêu cầu đặc biệt về uỷ quyền, hãy xem hướng dẫn Thực thi hàm.

Trong các ví dụ này, phần giữ chỗ scriptId được dùng để cho biết vị trí bạn sẽ cung cấp mã dự án tập lệnh. Hãy làm theo các bước bên dưới để tìm mã tập lệnh:

  1. Trong dự án Apps Script, ở trên cùng bên trái, hãy nhấp vào Cài đặt dự án .
  2. Bên cạnh "Mã tập lệnh", hãy nhấp vào Sao chép.

Thực thi hàm

Yêu cầu scripts.run sau đây gọi một hàm Apps Script có tên là listFolderContent, truyền vào đó folderId của Google Drive và một số nguyên MAX_SIZE dưới dạng đối số. Hàm này được thực thi ở chế độ phát triển, nghĩa là phiên bản được lưu gần đây nhất của hàm sẽ được thực thi, bất kể phiên bản nào được triển khai dưới dạng tệp thực thi.

Giao thức yêu cầu được trình bày bên dưới. Hướng dẫn Thực thi hàm cho biết cách triển khai yêu cầu chạy bằng các ngôn ngữ khác nhau bằng thư viện ứng dụng API của Google.

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

Phản hồi cho yêu cầu này (sau khi hàm Apps Script được gọi hoàn tất) chứa kết quả thực thi hoặc phản hồi lỗi. Trong ví dụ này, hàm trả về thành công một mảng tên tệp:

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

Nếu hàm gặp lỗi trong quá trình thực thi Apps Script, thì phản hồi có thể có dạng như sau:

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