העברה בכמות גדולה של סקריפטים זהים מ-Rhino ל-V8

בדף הזה נסביר איך להעביר סקריפטים זהים ל-V8 באמצעות Apps Script ו-Apps Script API.

צריך להעביר את כל הסקריפטים שמשתמשים בסביבת ההרצה של Rhino לפני שהיא תושבת ב-31 בינואר 2026 או לאחר מכן. אם יש לכם כמה סקריפטים זהים שפועלים ב-Rhino, אתם יכולים להעביר אותם ל-V8 בבת אחת באמצעות Apps Script API.

הגדרת הסביבה

  1. בהגדרות של לוח הבקרה של Apps Script, מפעילים את Apps Script API.
    1. עוברים אל הגדרות לוח הבקרה של Apps Script.
    2. אם ה-API מושבת, לוחצים על Google Apps Script API ומפעילים את המתג של Google Apps Script API.
  2. יוצרים פרויקט רגיל ב-Google Cloud או משתמשים בפרויקט קיים.
  3. בפרויקט Cloud, מגדירים את מסך ההסכמה ל-OAuth.
  4. בפרויקט ב-Cloud, מפעילים את Apps Script API.

    הפעלת Apps Script API

  5. יוצרים פרויקט Apps Script ומקצים את פרויקט Apps Script לפרויקט Cloud.

    1. יוצרים פרויקט עצמאי של Apps Script ממרכז הבקרה של Apps Script או על ידי מעבר אל script.new.
    2. לוחצים על Project Settings (הגדרות הפרויקט) הסמל של הגדרות הפרויקט.
    3. בקטע פרויקט Google Cloud Platform ‏ (GCP), לוחצים על שינוי הפרויקט.
    4. מזינים את מספר הפרויקט ב-Cloud.
    5. לוחצים על הגדרת פרויקט.

העברת סקריפטים

בדוגמת הקוד הבאה אפשר לראות איך משתמשים ב-Apps Script API כדי להעביר סקריפטים זהים מ-Rhino ל-V8 על ידי החלפת הקבצים בכל פרויקט Apps Script בקבוצה של קבצים שתואמים ל-V8.

מוודאים שיש לכם לפחות הרשאת עריכה בפרויקטים של הסקריפטים שאתם מתכננים להעביר.

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

כדי להשתמש ב-Apps Script API בפרויקט Apps Script, צריך להוסיף את היקפי ההרשאות הבאים של OAuth לקובץ המניפסט:

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

כדי להציג את קובץ המניפסט בעורך, לוחצים על הגדרות הפרויקט הסמל של הגדרות הפרויקט ומסמנים את התיבה הצגת קובץ המניפסט 'appsscript.json' בעורך. זוהי דוגמה לקובץ מניפסט עם היקפי הרשאות OAuth מתאימים:

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