Identische Scripts im Bulk von Rhino zu V8 migrieren

Auf dieser Seite wird beschrieben, wie Sie identische Skripts mit Apps Script und der Apps Script API zu V8 migrieren.

Alle Scripts, die die Rhino-Laufzeitumgebung verwenden, müssen migriert werden, bevor Rhino eingestellt wird. Dies geschieht am oder nach dem 31. Januar 2026. Wenn Sie mehrere identische Skripts in Rhino ausführen, können Sie sie alle zusammen mit der Apps Script API zu V8 migrieren.

Umgebung einrichten

  1. Aktivieren Sie in den Einstellungen des Apps Script-Dashboards die Apps Script API.
    1. Rufen Sie die Apps Script-Dashboard-Einstellungen auf.
    2. Wenn die API deaktiviert ist, klicken Sie auf Google Apps Script API und aktivieren Sie dann den Schalter für die Google Apps Script API.
  2. Erstellen Sie ein Standard-Google Cloud-Projekt oder verwenden Sie ein vorhandenes Projekt.
  3. Konfigurieren Sie den OAuth-Zustimmungsbildschirm in Ihrem Cloud-Projekt.
  4. Aktivieren Sie die Apps Script API in Ihrem Cloud-Projekt.

    Apps Script API aktivieren

  5. Erstellen Sie ein Apps Script-Projekt und weisen Sie es Ihrem Cloud-Projekt zu.

    1. Erstellen Sie ein eigenständiges Apps Script-Projekt über das Apps Script-Dashboard oder indem Sie script.new aufrufen.
    2. Klicken Sie auf Projekteinstellungen Symbol für Projekteinstellungen.
    3. Klicken Sie im Abschnitt Google Cloud Platform-Projekt (GCP-Projekt) auf Projekt ändern.
    4. Geben Sie die Projektnummer Ihres Cloud-Projekts ein.
    5. Klicken Sie auf Projekt festlegen.

Skripts migrieren

Das folgende Codebeispiel zeigt, wie Sie mit der Apps Script API identische Scripts von Rhino zu V8 migrieren, indem Sie die Dateien in jedem Apps Script-Projekt durch eine Reihe von V8-kompatiblen Dateien ersetzen.

Sie benötigen mindestens Bearbeitungszugriff auf die Skriptprojekte, die Sie migrieren möchten.

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

Wenn Sie die Apps Script API in Ihrem Apps Script-Projekt verwenden möchten, müssen Sie Ihrer Manifestdatei die folgenden OAuth-Bereiche hinzufügen:

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

Wenn Sie die Manifestdatei im Editor anzeigen möchten, klicken Sie auf Projekteinstellungen Symbol für Projekteinstellungen und setzen Sie ein Häkchen bei Manifestdatei „appsscript.json“ im Editor anzeigen. Hier ist ein Beispiel für eine Manifestdatei mit den entsprechenden OAuth-Bereichen:

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