zbiorcze przenoszenie identycznych skryptów z Rhino do V8;

Na tej stronie dowiesz się, jak przenieść identyczne skrypty do V8 za pomocą Google Apps Script i interfejsu Apps Script API.

Środowisko wykonawcze Rhino zostało wyłączone 31 stycznia 2026 r. lub w późniejszym terminie. Przenieś wszystkie skrypty, które korzystają ze środowiska wykonawczego Rhino, przed tą datą. Jeśli masz wiele identycznych skryptów działających w środowisku Rhino, przenieś je wszystkie do środowiska V8 za pomocą interfejsu Apps Script API.

Konfigurowanie środowiska

  1. W ustawieniach panelu Apps Script włącz interfejs Apps Script API.
    1. Otwórz ustawienia panelu Apps Script.
    2. Jeśli interfejs API jest wyłączony, kliknij Apps Script API, a następnie włącz przełącznik Apps Script API.
  2. Utwórz standardowy projekt Google Cloud lub użyj istniejącego projektu.
  3. W projekcie w chmurze skonfiguruj ekran zgody OAuth.
  4. W projekcie w chmurze włącz interfejs Apps Script API.

    Włącz interfejs Apps Script API

  5. Utwórz projekt Apps Script i przypisz go do projektu w chmurze.

    1. Utwórz samodzielny projekt Apps Script w panelu Apps Script lub na stronie script.new.
    2. Kliknij Ustawienia projektu Ikona ustawień projektu.
    3. W sekcji Projekt Google Cloud kliknij Zmień projekt.
    4. Wpisz numer projektu w chmurze.
    5. Kliknij Ustaw projekt.

Migracja skryptów

Poniższy przykładowy kod pokazuje, jak za pomocą interfejsu Apps Script API przenieść identyczne skrypty z Rhino do V8, zastępując pliki w każdym projekcie Apps Script zestawem plików zgodnych z V8.

Gdy używasz metody projects.UpdateContent interfejsu Apps Script API, uwzględnij wszystkie pliki w projekcie skryptu, nawet te, których nie chcesz zmieniać. Jeśli nie uwzględnisz pliku, zostanie on usunięty i nie będzie można go przywrócić.

Sprawdź, czy masz co najmniej uprawnienia do edycji projektów skryptów, które chcesz przenieść.

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

Aby używać interfejsu Apps Script API w projekcie Apps Script, dodaj do pliku manifestu te zakresy OAuth:

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

Aby wyświetlić plik manifestu w edytorze, kliknij Ustawienia projektu Ikona ustawień projektu i zaznacz pole Wyświetlaj plik manifestu „appsscript.json” w edytorze. Poniżej znajdziesz przykładowy plik manifestu z odpowiednimi zakresami 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"
}