বাল্ক অভিন্ন স্ক্রিপ্ট Rhino থেকে V8 তে স্থানান্তর করে

এই পৃষ্ঠায় গুগল অ্যাপস স্ক্রিপ্ট এবং অ্যাপস স্ক্রিপ্ট এপিআই ব্যবহার করে কীভাবে অভিন্ন স্ক্রিপ্টগুলোকে V8-এ স্থানান্তর করা যায়, তা বর্ণনা করা হয়েছে।

রাইনো রানটাইমটি ৩১শে জানুয়ারী, ২০২৬ তারিখে বা তার পরে বন্ধ করে দেওয়া হয়েছে। ঐ তারিখের আগে রাইনো রানটাইম ব্যবহার করে এমন যেকোনো স্ক্রিপ্ট মাইগ্রেট করুন। যদি আপনার রাইনোতে একাধিক, অভিন্ন স্ক্রিপ্ট চালু থাকে, তবে অ্যাপস স্ক্রিপ্ট এপিআই (Apps Script API) ব্যবহার করে সেগুলোকে একসাথে V8-এ মাইগ্রেট করুন।

আপনার পরিবেশ তৈরি করুন

  1. অ্যাপস স্ক্রিপ্ট ড্যাশবোর্ড সেটিংস থেকে অ্যাপস স্ক্রিপ্ট এপিআই (API) চালু করুন।
    1. অ্যাপস স্ক্রিপ্ট ড্যাশবোর্ড সেটিংসে যান।
    2. যদি API বন্ধ থাকে, তাহলে Apps Script API-তে ক্লিক করুন, তারপর Apps Script API টগলটি চালু করুন।
  2. একটি স্ট্যান্ডার্ড গুগল ক্লাউড প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন।
  3. আপনার ক্লাউড প্রজেক্টে OAuth কনসেন্ট স্ক্রিনটি কনফিগার করুন
  4. আপনার ক্লাউড প্রজেক্টে অ্যাপস স্ক্রিপ্ট এপিআই (Apps Script API) চালু করুন

    অ্যাপস স্ক্রিপ্ট এপিআই চালু করুন

  5. একটি অ্যাপস স্ক্রিপ্ট প্রজেক্ট তৈরি করুন এবং এটিকে আপনার ক্লাউড প্রজেক্টে যুক্ত করুন।

    1. অ্যাপস স্ক্রিপ্ট ড্যাশবোর্ড থেকে অথবা script.new ফাইলে গিয়ে একটি স্বতন্ত্র অ্যাপস স্ক্রিপ্ট প্রজেক্ট তৈরি করুন।
    2. প্রজেক্ট সেটিংসে ক্লিক করুন প্রজেক্ট সেটিংসের জন্য আইকন .
    3. Google Cloud Project সেকশনে, Change project- এ ক্লিক করুন।
    4. আপনার ক্লাউড প্রজেক্টের প্রজেক্ট নম্বরটি প্রবেশ করান।
    5. প্রজেক্ট সেট করুন -এ ক্লিক করুন।

স্ক্রিপ্ট স্থানান্তর করুন

নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে অ্যাপস স্ক্রিপ্ট এপিআই ব্যবহার করে প্রতিটি অ্যাপস স্ক্রিপ্ট প্রজেক্টের ফাইলগুলিকে এক সেট V8-সামঞ্জস্যপূর্ণ ফাইল দিয়ে প্রতিস্থাপন করার মাধ্যমে রাইনো থেকে V8-এ অভিন্ন স্ক্রিপ্টগুলি মাইগ্রেট করা যায়।

যখন আপনি অ্যাপস স্ক্রিপ্ট এপিআই-এর projects.UpdateContent মেথডটি ব্যবহার করেন, তখন স্ক্রিপ্ট প্রজেক্টের সমস্ত ফাইল অন্তর্ভুক্ত করুন, এমনকি যেগুলো আপনি পরিবর্তন করতে চান না সেগুলোও। যদি আপনি কোনো ফাইল অন্তর্ভুক্ত না করেন, তাহলে ফাইলটি মুছে যায় এবং তা পুনরুদ্ধার করা যায় না।

আপনি যে স্ক্রিপ্ট প্রজেক্টগুলো মাইগ্রেট করার পরিকল্পনা করছেন, সেগুলোতে আপনার অন্তত এডিটর অ্যাক্সেস আছে কিনা তা নিশ্চিত করুন।

কোড.জিএস

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

আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টে অ্যাপস স্ক্রিপ্ট এপিআই ব্যবহার করতে, আপনার ম্যানিফেস্ট ফাইলে নিম্নলিখিত 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"
}