Questa pagina descrive come eseguire la migrazione di script identici a V8 utilizzando Google Apps Script e l'API Apps Script.
Il runtime Rhino è stato disattivato a partire dal 31 gennaio 2026. Esegui la migrazione di tutti gli script che utilizzano il runtime Rhino prima di questa data. Se hai più script identici in esecuzione su Rhino, esegui la migrazione a V8 tutti insieme utilizzando l'API Apps Script.
Configura l'ambiente
- Nelle impostazioni della dashboard di Apps Script, attiva l'API Apps Script.
- Vai alle impostazioni della dashboard di Apps Script.
- Se l'API è disattivata, fai clic su API Apps Script, quindi attiva il pulsante di attivazione/disattivazione API Apps Script.
- Crea un progetto Google Cloud standard o riutilizza un progetto esistente.
- Nel tuo progetto Cloud, configura la schermata per il consenso OAuth.
Nel tuo progetto Cloud, attiva l'API Apps Script.
Crea un progetto Apps Script e assegnalo al tuo progetto Cloud.
- Crea un progetto Apps Script autonomo dalla dashboard di Apps Script o andando su script.new.
- Fai clic su Impostazioni progetto
.
- Nella sezione Progetto Google Cloud, fai clic su Cambia progetto.
- Inserisci il numero del progetto Cloud.
- Fai clic su Imposta progetto.
Eseguire la migrazione degli script
Il seguente esempio di codice mostra come utilizzare l'API Apps Script per eseguire la migrazione di script identici da Rhino a V8 sostituendo i file in ogni progetto Apps Script con un insieme di file compatibili con V8.
Quando utilizzi il metodo projects.UpdateContent dell'API Apps Script, includi tutti i file nel progetto di script, anche quelli che non vuoi modificare. Se non includi un file, questo viene eliminato e non può essere ripristinato.
Assicurati di disporre almeno dell'accesso di editor ai progetti di script che prevedi di migrare.
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
Per utilizzare l'API Apps Script nel tuo progetto Apps Script, aggiungi i seguenti ambiti OAuth al file manifest:
"https://www.googleapis.com/auth/script.projects""https://www.googleapis.com/auth/script.external_request"
Per mostrare il file manifest nell'editor, fai clic su Impostazioni progetto
e seleziona la casella Mostra il file manifest "appsscript.json" nell'editor. Di seguito è riportato un file manifest di esempio con gli ambiti OAuth appropriati:
{
"timeZone": "America/Denver",
"dependencies": {
},
"oauthScopes": [
"https://www.googleapis.com/auth/script.projects",
"https://www.googleapis.com/auth/script.external_request"
],
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8"
}