এই পৃষ্ঠায় Google Apps Script এবং Apps Script API ব্যবহার করে কীভাবে একই স্ক্রিপ্টগুলিকে V8 এ স্থানান্তর করা যায় তা বর্ণনা করা হয়েছে।
৩১ জানুয়ারী, ২০২৬ তারিখে বা তার পরে Rhino রানটাইম বন্ধ করে দেওয়া হয়েছিল। সেই তারিখের আগে Rhino রানটাইম ব্যবহার করে এমন যেকোনো স্ক্রিপ্ট মাইগ্রেট করুন। যদি Rhino-তে একাধিক, অভিন্ন স্ক্রিপ্ট চলমান থাকে, তাহলে Apps Script API ব্যবহার করে সেগুলিকে একসাথে V8-এ মাইগ্রেট করুন।
আপনার পরিবেশ সেট আপ করুন
- অ্যাপস স্ক্রিপ্ট ড্যাশবোর্ড সেটিংস থেকে, অ্যাপস স্ক্রিপ্ট API চালু করুন।
- অ্যাপস স্ক্রিপ্ট ড্যাশবোর্ড সেটিংসে যান।
- যদি API বন্ধ থাকে, তাহলে Apps Script API এ ক্লিক করুন, তারপর Apps Script API টগল চালু করুন।
- একটি স্ট্যান্ডার্ড গুগল ক্লাউড প্রকল্প তৈরি করুন অথবা বিদ্যমান প্রকল্পটি পুনরায় ব্যবহার করুন।
- আপনার ক্লাউড প্রোজেক্টে, OAuth সম্মতি স্ক্রিন কনফিগার করুন ।
আপনার ক্লাউড প্রজেক্টে, অ্যাপস স্ক্রিপ্ট API চালু করুন ।
একটি অ্যাপস স্ক্রিপ্ট প্রজেক্ট তৈরি করুন এবং এটি আপনার ক্লাউড প্রজেক্টে অ্যাসাইন করুন।
- অ্যাপস স্ক্রিপ্ট ড্যাশবোর্ড থেকে অথবা script.new এ গিয়ে একটি স্বতন্ত্র অ্যাপস স্ক্রিপ্ট প্রকল্প তৈরি করুন।
- প্রকল্প সেটিংসে ক্লিক করুন
.
- গুগল ক্লাউড প্রজেক্ট বিভাগে, প্রজেক্ট পরিবর্তন করুন এ ক্লিক করুন।
- আপনার ক্লাউড প্রোজেক্টের প্রোজেক্ট নম্বর লিখুন।
- প্রজেক্ট সেট করুন এ ক্লিক করুন।
স্ক্রিপ্টগুলি স্থানান্তর করুন
নিম্নলিখিত কোড নমুনাটি দেখায় যে কীভাবে Apps Script API ব্যবহার করে Rhino থেকে V8 তে অভিন্ন স্ক্রিপ্টগুলি স্থানান্তর করতে হয়, প্রতিটি Apps Script প্রকল্পের ফাইলগুলিকে V8-সামঞ্জস্যপূর্ণ ফাইলের একটি সেট দিয়ে প্রতিস্থাপন করে।
যখন আপনি Apps Script API এর 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!`);
}
});
}
অ্যাপস্ক্রিপ্ট.জেসন
আপনার Apps Script প্রজেক্টে Apps Script API ব্যবহার করতে, আপনার ম্যানিফেস্ট ফাইলে নিম্নলিখিত 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"
}