Migrer des scripts identiques de Rhino vers V8 de manière groupée

Cette page explique comment migrer des scripts identiques vers V8 à l'aide d'Apps Script et de l'API Apps Script.

Vous devez migrer tous les scripts qui utilisent l'environnement d'exécution Rhino avant qu'il ne soit désactivé, ce qui aura lieu le 31 janvier 2026 ou après. Si vous exécutez plusieurs scripts identiques sur Rhino, vous pouvez les migrer vers V8 tous ensemble à l'aide de l'API Apps Script.

Configurer votre environnement

  1. Dans les paramètres du tableau de bord Apps Script, activez l'API Apps Script.
    1. Accédez aux paramètres du tableau de bord Apps Script.
    2. Si l'API est désactivée, cliquez sur API Google Apps Script, puis activez l'option correspondante.
  2. Créez un projet Google Cloud standard ou réutilisez un projet existant.
  3. Dans votre projet Cloud, configurez l'écran de consentement OAuth.
  4. Dans votre projet Cloud, activez l'API Apps Script.

    Activer l'API Apps Script

  5. Créez un projet Apps Script et attribuez-le à votre projet Cloud.

    1. Créez un projet Apps Script autonome à partir du tableau de bord Apps Script ou en accédant à script.new.
    2. Cliquez sur Paramètres du projet Icône des paramètres du projet.
    3. Dans la section Projet Google Cloud Platform (GCP), cliquez sur Changer de projet.
    4. Saisissez le numéro de votre projet Cloud.
    5. Cliquez sur Définir un projet.

Migrer des scripts

L'exemple de code suivant montre comment utiliser l'API Apps Script pour migrer des scripts identiques de Rhino vers V8 en remplaçant les fichiers de chaque projet Apps Script par un ensemble de fichiers compatibles avec V8.

Assurez-vous de disposer au moins d'un accès éditeur aux projets de script que vous prévoyez de migrer.

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!`);
    }
  });
}

Pour utiliser l'API Apps Script dans votre projet Apps Script, vous devez ajouter les champs d'application OAuth suivants à votre fichier manifeste:

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

Pour exposer le fichier manifeste dans l'éditeur, cliquez sur Project Settings (Paramètres du projet) Icône des paramètres du projet, puis cochez la case Show "appsscript.json" manifest file in editor (Afficher le fichier manifeste "appsscript.json" dans l'éditeur). Voici un exemple de fichier manifeste avec les champs d'application OAuth appropriés:

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