Di chuyển hàng loạt các tập lệnh giống hệt nhau từ Rhino sang V8

Trang này mô tả cách di chuyển các tập lệnh giống nhau sang V8 bằng Google Apps Script và API Apps Script.

Môi trường thời gian chạy Rhino đã ngừng hoạt động từ ngày 31 tháng 1 năm 2026. Di chuyển mọi tập lệnh sử dụng thời gian chạy Rhino trước ngày đó. Nếu bạn có nhiều tập lệnh giống hệt nhau đang chạy trên Rhino, hãy di chuyển tất cả tập lệnh đó sang V8 cùng một lúc bằng cách sử dụng Apps Script API.

Thiết lập môi trường

  1. Trong phần cài đặt trang tổng quan Apps Script, hãy bật Apps Script API.
    1. Chuyển đến phần Cài đặt trang tổng quan Apps Script.
    2. Nếu API này đang tắt, hãy nhấp vào API Apps Script, rồi bật nút bật/tắt API Apps Script.
  2. Tạo một dự án Google Cloud tiêu chuẩn hoặc sử dụng lại một dự án hiện có.
  3. Trong dự án trên đám mây, hãy định cấu hình màn hình đồng ý OAuth.
  4. Trong dự án trên đám mây, hãy bật Apps Script API.

    Bật Apps Script API

  5. Tạo một dự án Apps Script và chỉ định dự án đó cho dự án trên đám mây của bạn.

    1. Tạo một dự án Apps Script độc lập từ trang tổng quan Apps Script hoặc bằng cách truy cập vào script.new.
    2. Nhấp vào Project Settings (Cài đặt dự án) Biểu tượng cho phần cài đặt dự án.
    3. Trong mục Dự án trên Google Cloud, hãy nhấp vào Thay đổi dự án.
    4. Nhập số dự án của dự án trên đám mây.
    5. Nhấp vào Đặt dự án.

Di chuyển tập lệnh

Mã mẫu sau đây cho biết cách sử dụng Apps Script API để di chuyển các tập lệnh giống nhau từ Rhino sang V8 bằng cách thay thế các tệp trong mỗi dự án Apps Script bằng một nhóm tệp tương thích với V8.

Khi bạn sử dụng phương thức projects.UpdateContent của API Apps Script, hãy đưa tất cả các tệp vào dự án tập lệnh, ngay cả những tệp mà bạn không muốn thay đổi. Nếu bạn không đưa một tệp vào, tệp đó sẽ bị xoá và không thể khôi phục.

Đảm bảo bạn có ít nhất quyền chỉnh sửa đối với các dự án tập lệnh mà bạn dự định di chuyển.

Code.gs

function updateRhinoScripts() {
  // An array of script IDs of script projects to migrate.
  // TODO(developer): Replace with your script IDs.
  const scriptIds = ['abcdef12345678', 'abcdef12345678'];
  // An array of file objects to replace the existing files in each script project.
  // Remember to include all files for the script, excluded files are deleted.
  // TODO(developer): Replace with your script files.
  const filesToUpdate = {
    "files": [
      {
        "name": "Code",
        "type": "SERVER_JS",
        "source": "// New updates\nfunction myFunction() {\n  console.log('Hello, world!');\n}"
      },
      {
        "name": "appsscript",
        "type": "JSON",
        "source": JSON.stringify({
          "timeZone": "America/New_York",
          "dependencies": {},
          "exceptionLogging": "STACKDRIVER",
          "runtimeVersion": "V8"
        })
      }
    ]
  };
  updateMultipleAppsScripts(scriptIds, filesToUpdate);
}

function updateMultipleAppsScripts(scriptIds, filesToUpdate) {
  // 'scriptIds' should be an array of script IDs
  // 'filesToUpdate' should be an array of objects, each with:
  // name: The filename (For example, "Code", "Utilities")
  // source: The source code for that file.
  scriptIds.forEach(function (scriptId) {
    // Makes the API request.
    const response = UrlFetchApp.fetch(
      `https://script.googleapis.com/v1/projects/${scriptId}/content`,
      {
        method: "PUT",
        headers: {
          Authorization: `Bearer ${ScriptApp.getOAuthToken()}`
        },
        contentType: "application/json",
        payload: JSON.stringify(filesToUpdate),
        muteHttpExceptions: true
      }
    );
    if (response.getResponseCode() !== 200) {
      console.log(`Error updating script ${scriptId}: ${response.getContentText()}`);
    } else {
      console.log(`Script ${scriptId} updated successfully!`);
    }
  });
}

appsscript.json

Để sử dụng Apps Script API trong dự án Apps Script, hãy thêm các phạm vi OAuth sau vào tệp kê khai:

  • "https://www.googleapis.com/auth/script.projects"
  • "https://www.googleapis.com/auth/script.external_request"

Để hiển thị tệp kê khai trong trình chỉnh sửa, hãy nhấp vào Project Settings (Cài đặt dự án) Biểu tượng cho phần cài đặt dự án rồi đánh dấu vào hộp Show "appsscript.json" manifest file in editor (Hiển thị tệp kê khai "appsscript.json" trong trình chỉnh sửa). Sau đây là tệp kê khai mẫu có các phạm vi OAuth thích hợp:

{
  "timeZone": "America/Denver",
  "dependencies": {
  },
  "oauthScopes": [
  "https://www.googleapis.com/auth/script.projects",
  "https://www.googleapis.com/auth/script.external_request"
],
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8"
}