בדף הזה נסביר איך להעביר סקריפטים זהים ל-V8 באמצעות Apps Script ו-Apps Script API.
צריך להעביר את כל הסקריפטים שמשתמשים בסביבת ההרצה של Rhino לפני שהיא תושבת ב-31 בינואר 2026 או לאחר מכן. אם יש לכם כמה סקריפטים זהים שפועלים ב-Rhino, אתם יכולים להעביר אותם ל-V8 בבת אחת באמצעות Apps Script API.
הגדרת הסביבה
- בהגדרות של לוח הבקרה של Apps Script, מפעילים את Apps Script API.
- עוברים אל הגדרות לוח הבקרה של Apps Script.
- אם ה-API מושבת, לוחצים על Google Apps Script API ומפעילים את המתג של Google Apps Script API.
- יוצרים פרויקט רגיל ב-Google Cloud או משתמשים בפרויקט קיים.
- בפרויקט Cloud, מגדירים את מסך ההסכמה ל-OAuth.
בפרויקט ב-Cloud, מפעילים את Apps Script API.
יוצרים פרויקט Apps Script ומקצים את פרויקט Apps Script לפרויקט Cloud.
- יוצרים פרויקט עצמאי של Apps Script ממרכז הבקרה של Apps Script או על ידי מעבר אל script.new.
- לוחצים על Project Settings (הגדרות הפרויקט)
.
- בקטע פרויקט Google Cloud Platform (GCP), לוחצים על שינוי הפרויקט.
- מזינים את מספר הפרויקט ב-Cloud.
- לוחצים על הגדרת פרויקט.
העברת סקריפטים
בדוגמת הקוד הבאה אפשר לראות איך משתמשים ב-Apps Script API כדי להעביר סקריפטים זהים מ-Rhino ל-V8 על ידי החלפת הקבצים בכל פרויקט Apps Script בקבוצה של קבצים שתואמים ל-V8.
מוודאים שיש לכם לפחות הרשאת עריכה בפרויקטים של הסקריפטים שאתם מתכננים להעביר.
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"
כדי להציג את קובץ המניפסט בעורך, לוחצים על הגדרות הפרויקט
ומסמנים את התיבה הצגת קובץ המניפסט '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"
}