בדף הזה מוסבר איך להעביר סקריפטים זהים ל-V8 באמצעות Google Apps Script ו-Apps Script API.
סביבת זמן הריצה של Rhino הושבתה ב-31 בינואר 2026 או לאחר מכן. צריך להעביר את כל הסקריפטים שמשתמשים בסביבת ההרצה של Rhino לפני התאריך הזה. אם יש לכם כמה סקריפטים זהים שפועלים ב-Rhino, אתם יכולים להעביר אותם ל-V8 בבת אחת באמצעות Apps Script API.
הגדרת הסביבה
- בהגדרות של לוח הבקרה של Apps Script, מפעילים את Apps Script API.
- עוברים אל הגדרות מרכז הבקרה של Apps Script.
- אם ה-API מושבת, לוחצים על Apps Script API ואז על המתג Apps Script API כדי להפעיל אותו.
- יוצרים פרויקט רגיל ב-Google Cloud או משתמשים בפרויקט קיים.
- בפרויקט בענן, מגדירים את מסך ההסכמה ל-OAuth.
בפרויקט בענן שלכם, מפעילים את Apps Script API.
יוצרים פרויקט Apps Script ומקצים אותו לפרויקט בענן.
- יוצרים פרויקט עצמאי ב-Apps Script ממרכז הבקרה של Apps Script או על ידי מעבר אל script.new.
- לוחצים על Project Settings (הגדרות הפרויקט)
.
- בקטע פרויקט ב-Google Cloud, לוחצים על שינוי הפרויקט.
- מזינים את מספר הפרויקט בענן.
- לוחצים על הגדרת פרויקט.
העברת סקריפטים
בדוגמת הקוד הבאה אפשר לראות איך משתמשים ב-Apps Script API כדי להעביר סקריפטים זהים מ-Rhino ל-V8 על ידי החלפת הקבצים בכל פרויקט Apps Script בקבוצה של קבצים שתואמים ל-V8.
כשמשתמשים בשיטה projects.UpdateContent של Apps Script API, צריך לכלול את כל הקבצים בפרויקט הסקריפט, גם את אלה שלא רוצים לשנות. אם לא כוללים קובץ, הוא נמחק ואי אפשר לשחזר אותו.
מוודאים שיש לכם לפחות הרשאת עריכה בפרויקטים של הסקריפטים שאתם מתכננים להעביר.
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
כדי להשתמש ב-Apps Script API בפרויקט Apps Script, מוסיפים את היקפי ההרשאות הבאים של OAuth לקובץ המניפסט:
"https://www.googleapis.com/auth/script.projects""https://www.googleapis.com/auth/script.external_request"
כדי להציג את קובץ המניפסט בעורך, לוחצים על Project Settings (הגדרות הפרויקט) ומסמנים את התיבה Show "appsscript.json" manifest file in editor (הצגת קובץ המניפסט 'appsscript.json' בעורך). קובץ מניפסט לדוגמה עם היקפי הרשאות 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"
}