Auf dieser Seite wird beschrieben, wie Sie identische Skripts mit Google Apps Script und der Apps Script API zu V8 migrieren.
Die Rhino-Laufzeitumgebung wurde am oder nach dem 31. Januar 2026 eingestellt. Migrieren Sie alle Scripts, die die Rhino-Laufzeitumgebung verwenden, vor diesem Datum. Wenn Sie mehrere identische Skripts in Rhino ausführen, migrieren Sie sie alle zusammen mit der Apps Script API zu V8.
Umgebung einrichten
- Aktivieren Sie in den Dashboard-Einstellungen von Apps Script die Apps Script API.
- Rufen Sie die Einstellungen für das Apps Script-Dashboard auf.
- Wenn die API deaktiviert ist, klicken Sie auf Apps Script API und aktivieren Sie dann den Schalter Apps Script API.
- Erstellen Sie ein Standard-Google Cloud-Projekt oder verwenden Sie ein vorhandenes Projekt.
- Konfigurieren Sie den OAuth-Zustimmungsbildschirm in Ihrem Cloud-Projekt.
Aktivieren Sie die Apps Script API in Ihrem Cloud-Projekt.
Erstellen Sie ein Apps Script-Projekt und weisen Sie es Ihrem Cloud-Projekt zu.
- Erstellen Sie ein eigenständiges Apps Script-Projekt über das Apps Script-Dashboard oder indem Sie script.new aufrufen.
- Klicken Sie auf Projekteinstellungen
.
- Klicken Sie im Abschnitt Google Cloud-Projekt auf Projekt ändern.
- Geben Sie die Projektnummer Ihres Cloud-Projekts ein.
- Klicken Sie auf Projekt festlegen.
Skripts migrieren
Das folgende Codebeispiel zeigt, wie Sie mit der Apps Script API identische Skripts von Rhino zu V8 migrieren, indem Sie die Dateien in jedem Apps Script-Projekt durch eine Reihe von V8-kompatiblen Dateien ersetzen.
Wenn Sie die Methode projects.UpdateContent der Apps Script API verwenden, müssen Sie alle Dateien im Skriptprojekt einbeziehen, auch solche, die Sie nicht ändern möchten. Wenn Sie keine Datei einfügen, wird die Datei gelöscht und kann nicht wiederhergestellt werden.
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, fügen Sie der Manifestdatei die folgenden OAuth-Bereiche hinzu:
"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
und setzen Sie ein Häkchen in das Kästchen 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"
}