انتقال انبوه اسکریپت های یکسان از Rhino به V8

این صفحه نحوه انتقال اسکریپت های یکسان به V8 با استفاده از Apps Script و Apps Script API را شرح می دهد.

باید اسکریپت‌هایی را که از زمان اجرای Rhino استفاده می‌کنند، قبل از اینکه Rhino خاموش شود، که در تاریخ 31 ژانویه 2026 یا بعد از آن اتفاق می‌افتد، منتقل کنید. اگر چندین اسکریپت یکسان در حال اجرا در Rhino دارید، می‌توانید همه آنها را با استفاده از Apps Script API به V8 منتقل کنید.

محیط خود را تنظیم کنید

  1. از تنظیمات داشبورد Apps Script، Apps Script API را روشن کنید.
    1. به تنظیمات داشبورد Apps Script بروید.
    2. اگر API خاموش است، روی Google Apps Script API کلیک کنید، سپس کلید Google Apps Script API را روشن کنید.
  2. یک پروژه استاندارد Google Cloud ایجاد کنید یا از یک پروژه موجود دوباره استفاده کنید.
  3. در پروژه Cloud خود، صفحه رضایت OAuth را پیکربندی کنید .
  4. در پروژه Cloud خود، Apps Script API را روشن کنید .

    Apps Script API را روشن کنید

  5. یک پروژه Apps Script ایجاد کنید و پروژه Apps Script را به پروژه Cloud خود اختصاص دهید.

    1. یک پروژه Apps Script مستقل از داشبورد Apps Script یا با رفتن به script.new ایجاد کنید.
    2. روی تنظیمات پروژه کلیک کنید نماد تنظیمات پروژه .
    3. در بخش پروژه Google Cloud Platform (GCP) ، روی تغییر پروژه کلیک کنید.
    4. شماره پروژه پروژه Cloud خود را وارد کنید.
    5. روی تنظیم پروژه کلیک کنید.

انتقال اسکریپت ها

نمونه کد زیر نحوه استفاده از Apps Script API را برای انتقال اسکریپت های یکسان از Rhino به V8 با جایگزین کردن فایل های هر پروژه Apps Script با مجموعه ای از فایل های سازگار با V8 نشان می دهد.

مطمئن شوید که حداقل به پروژه‌های اسکریپتی که قصد دارید مهاجرت کنید، دسترسی ویرایشگر دارید.

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

برای استفاده از 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"
}