ইনস্টলযোগ্য ট্রিগার

সাধারণ ট্রিগারের মতো, ইনস্টলযোগ্য ট্রিগারগুলি Google Apps Script কে স্বয়ংক্রিয়ভাবে একটি ফাংশন চালাতে দেয় যখন কোনও নির্দিষ্ট ঘটনা, যেমন একটি ডকুমেন্ট খোলা, ঘটে। তবে, ইনস্টলযোগ্য ট্রিগারগুলি সাধারণ ট্রিগারগুলির তুলনায় বেশি নমনীয়তা প্রদান করে: তারা অনুমোদনের প্রয়োজন এমন পরিষেবাগুলিকে কল করতে পারে, তারা সময়-চালিত (ঘড়ি) ট্রিগার সহ বেশ কয়েকটি অতিরিক্ত ধরণের ইভেন্ট অফার করে এবং সেগুলিকে প্রোগ্রাম্যাটিকভাবে নিয়ন্ত্রণ করা যেতে পারে। সহজ এবং ইনস্টলযোগ্য উভয় ট্রিগারের জন্য, Apps Script ট্রিগার করা ফাংশনটিকে একটি ইভেন্ট অবজেক্ট পাস করে যাতে ঘটনাটি কোন প্রেক্ষাপটে ঘটেছে সে সম্পর্কে তথ্য থাকে।

অ্যাড-অনগুলিতে ট্রিগার কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও তথ্যের জন্য, Google Workspace অ্যাড-অনের জন্য ট্রিগার দেখুন।

বিধিনিষেধ

যদিও ইনস্টলযোগ্য ট্রিগারগুলি সাধারণ ট্রিগারগুলির তুলনায় বেশি নমনীয়তা প্রদান করে, তবুও সেগুলিতে বেশ কয়েকটি বিধিনিষেধ রয়েছে:

  • শুধুমাত্র পঠনযোগ্য (দেখুন বা মন্তব্য করুন) মোডে কোনও ফাইল খোলা থাকলে এগুলি চলে না। স্বতন্ত্র স্ক্রিপ্টগুলির জন্য, ট্রিগারগুলি সঠিকভাবে চালানোর জন্য ব্যবহারকারীদের কমপক্ষে স্ক্রিপ্ট ফাইলে দেখার অ্যাক্সেস প্রয়োজন।
  • স্ক্রিপ্ট এক্সিকিউশন এবং API অনুরোধের ফলে ট্রিগার চালানো হয় না। উদাহরণস্বরূপ, একটি নতুন ফর্ম প্রতিক্রিয়া জমা দেওয়ার জন্য FormResponse.submit() কল করলে ফর্মের সাবমিট ট্রিগার চালানো হয় না।

    এই সীমাবদ্ধতার ব্যতিক্রম হল Form.submitGrades() । যদি আপনার কোডটি onFormSubmit ট্রিগার ব্যবহার করে, তাহলে Form.submitGrades() কল করলে onFormSubmit শর্তটি ট্রিগার হয় এবং একটি অসীম লুপ তৈরি হয়। অসীম লুপ প্রতিরোধ করতে, submitGrades() কল করার আগে গ্রেড ইতিমধ্যেই বিদ্যমান কিনা তা পরীক্ষা করে এমন কোড যোগ করুন।

  • ইনস্টলযোগ্য ট্রিগারগুলি সর্বদা সেই ব্যক্তির অ্যাকাউন্টের অধীনে চলে যিনি এটি তৈরি করেছেন। উদাহরণস্বরূপ, যদি আপনি একটি ইনস্টলযোগ্য ওপেন ট্রিগার তৈরি করেন, তাহলে এটি আপনার সহকর্মী ডকুমেন্টটি খুললে (যদি আপনার সহকর্মীর সম্পাদনা অ্যাক্সেস থাকে) কাজ করবে, তবে এটি আপনার অ্যাকাউন্ট হিসাবে চলবে। এর অর্থ হল, যদি আপনি কোনও ডকুমেন্ট খোলার সময় ইমেল পাঠানোর জন্য একটি ট্রিগার তৈরি করেন, তাহলে ইমেলটি সর্বদা আপনার অ্যাকাউন্ট থেকে পাঠানো হবে, অগত্যা যে অ্যাকাউন্টটি ডকুমেন্টটি খুলেছে সেই অ্যাকাউন্ট থেকে নয়। তবে, আপনি প্রতিটি অ্যাকাউন্টের জন্য একটি ইনস্টলযোগ্য ট্রিগার তৈরি করতে পারেন, যার ফলে প্রতিটি অ্যাকাউন্ট থেকে একটি ইমেল পাঠানো হবে।

  • একটি অ্যাকাউন্ট দ্বিতীয় অ্যাকাউন্ট থেকে ইনস্টল করা ট্রিগারগুলি দেখতে পাবে না, যদিও প্রথম অ্যাকাউন্টটি এখনও সেই ট্রিগারগুলি সক্রিয় করতে পারে।

  • ইনস্টলযোগ্য ট্রিগারগুলি অ্যাপস স্ক্রিপ্ট ট্রিগার কোটা সীমার অধীন।

সময়-চালিত ট্রিগার

একটি সময়-চালিত ট্রিগার (যাকে ঘড়ির ট্রিগারও বলা হয়) ইউনিক্সের ক্রোন জবের মতো। সময়-চালিত ট্রিগারগুলি স্ক্রিপ্টগুলিকে একটি নির্দিষ্ট সময়ে বা পুনরাবৃত্ত ব্যবধানে, প্রতি মিনিটে যতবার বা কদাচিৎ প্রতি মাসে একবার চালানোর অনুমতি দেয়। (একটি অ্যাড-অন প্রতি ঘন্টায় সর্বাধিক একবার সময়-চালিত ট্রিগার ব্যবহার করতে পারে।) সময়টি সামান্য এলোমেলোভাবে করা যেতে পারে—উদাহরণস্বরূপ, যদি আপনি একটি পুনরাবৃত্ত 9 AM ট্রিগার তৈরি করেন, তাহলে Apps Script 9 AM থেকে 10 AM এর মধ্যে একটি সময় বেছে নেয়, তারপর সেই সময়কালকে প্রতিদিন সামঞ্জস্যপূর্ণ রাখে যাতে ট্রিগারটি আবার চালু হওয়ার আগে 24 ঘন্টা কেটে যায়।

ইভেন্ট-চালিত ট্রিগার

ইনস্টলযোগ্য ইভেন্ট-চালিত ট্রিগারগুলি ধারণাগতভাবে onOpen() এর মতো সাধারণ ট্রিগারগুলির মতো, তবে তারা অতিরিক্ত ইভেন্টগুলিতে প্রতিক্রিয়া জানাতে পারে এবং তারা ভিন্নভাবে আচরণ করে।

উদাহরণস্বরূপ, Google Sheets-এর জন্য ইনস্টলযোগ্য ওপেন ট্রিগার সক্রিয় হয় যখনই সম্পাদনা অ্যাক্সেস আছে এমন যেকোনো ব্যবহারকারী স্প্রেডশিটটি খোলে, ঠিক যেমনটি সহজ onOpen() ট্রিগার। তবে, ইনস্টলযোগ্য সংস্করণটি এমন পরিষেবাগুলিকে কল করতে পারে যার জন্য অনুমোদন প্রয়োজন। ইনস্টলযোগ্য সংস্করণটি ট্রিগার তৈরিকারী ব্যবহারকারীর অনুমোদনের সাথে চলে, এমনকি সম্পাদনা অ্যাক্সেস আছে এমন অন্য ব্যবহারকারী স্প্রেডশিটটি খোলে।

গুগল ওয়ার্কস্পেস অ্যাপ্লিকেশনের জন্য বেশ কয়েকটি ইনস্টলযোগ্য ট্রিগার রয়েছে:

  • যখন একজন ব্যবহারকারী এমন একটি স্প্রেডশিট, ডকুমেন্ট বা ফর্ম খোলেন যা সম্পাদনা করার অনুমতি তাদের আছে, তখন একটি ইনস্টলযোগ্য ওপেন ট্রিগার চলে।
  • যখন একজন ব্যবহারকারী স্প্রেডশিটে একটি মান পরিবর্তন করেন, তখন একটি ইনস্টলযোগ্য সম্পাদনা ট্রিগার চলে।
  • যখন একজন ব্যবহারকারী স্প্রেডশিটের কাঠামো নিজেই পরিবর্তন করেন - উদাহরণস্বরূপ, একটি নতুন শীট যুক্ত করে বা একটি কলাম সরিয়ে দিয়ে - তখন একটি ইনস্টলযোগ্য পরিবর্তন ট্রিগার চলে।
  • যখন কোনও ব্যবহারকারী কোনও ফর্মের প্রতিক্রিয়া জানায় তখন একটি ইনস্টলযোগ্য ফর্ম জমা দেওয়ার ট্রিগার চলে। ফর্ম-সাবমিট ট্রিগারের দুটি সংস্করণ রয়েছে, একটি গুগল ফর্মের জন্য এবং একটি শীটের জন্য যদি ফর্মটি একটি স্প্রেডশিটে জমা দেওয়া হয়
  • যখন কোনও ব্যবহারকারীর ক্যালেন্ডার ইভেন্ট আপডেট করা হয়—তৈরি, সম্পাদনা করা বা মুছে ফেলা হয়—তখন একটি ইনস্টলযোগ্য ক্যালেন্ডার ইভেন্ট ট্রিগার চালু হয়।

ইনস্টলযোগ্য ট্রিগারগুলি স্বতন্ত্র এবং আবদ্ধ স্ক্রিপ্টগুলিতে পাওয়া যায়। উদাহরণস্বরূপ, একটি স্বতন্ত্র স্ক্রিপ্ট প্রোগ্রাম্যাটিকভাবে TriggerBuilder.forSpreadsheet(key) কল করে এবং স্প্রেডশিটের আইডি পাস করে একটি ইচ্ছামত Google Sheets ফাইলের জন্য একটি ইনস্টলযোগ্য ট্রিগার তৈরি করতে পারে।

ট্রিগারগুলি ম্যানুয়ালি পরিচালনা করুন

স্ক্রিপ্ট এডিটরে ম্যানুয়ালি একটি ইনস্টলযোগ্য ট্রিগার তৈরি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টটি খুলুন।
  2. বাম দিকে, ট্রিগারস ক্লিক করুন।
  3. নীচে ডানদিকে, Add Trigger এ ক্লিক করুন।
  4. আপনি যে ধরণের ট্রিগার তৈরি করতে চান তা নির্বাচন করুন এবং কনফিগার করুন।
  5. সংরক্ষণ করুন ক্লিক করুন।

প্রোগ্রাম্যাটিকভাবে ট্রিগার পরিচালনা করুন

Script পরিষেবা ব্যবহার করে প্রোগ্রাম্যাটিকভাবে ট্রিগার তৈরি এবং মুছে ফেলুন। ScriptApp.newTrigger(functionName) কল করে শুরু করুন, যা একটি TriggerBuilder প্রদান করে।

নিচের উদাহরণটি দেখায় কিভাবে দুটি সময়-চালিত ট্রিগার তৈরি করতে হয়—একটি যা প্রতি ৬ ঘন্টা অন্তর সক্রিয় হয় এবং অন্যটি যা প্রতি সোমবার সকাল ৯ টায় সক্রিয় হয় (আপনার স্ক্রিপ্ট যে সময় অঞ্চলে সেট করা আছে)।

ট্রিগার/ট্রিগার.gs
/**
 * Creates two time-driven triggers.
 * @see https://developers.google.com/apps-script/guides/triggers/installable#time-driven_triggers
 */
function createTimeDrivenTriggers() {
  // Trigger every 6 hours.
  ScriptApp.newTrigger("myFunction").timeBased().everyHours(6).create();
  // Trigger every Monday at 09:00.
  ScriptApp.newTrigger("myFunction")
    .timeBased()
    .onWeekDay(ScriptApp.WeekDay.MONDAY)
    .atHour(9)
    .create();
}

পরবর্তী উদাহরণে দেখানো হয়েছে কিভাবে একটি স্প্রেডশিটের জন্য একটি ইনস্টলযোগ্য ওপেন ট্রিগার তৈরি করতে হয়। একটি সাধারণ onOpen() ট্রিগারের বিপরীতে, ইনস্টলযোগ্য ট্রিগারের স্ক্রিপ্টটি স্প্রেডশিটের সাথে আবদ্ধ হওয়ার প্রয়োজন হয় না। একটি স্বতন্ত্র স্ক্রিপ্ট থেকে এই ট্রিগার তৈরি করতে, SpreadsheetApp.getActive() SpreadsheetApp.openById(id) এ কল দিয়ে প্রতিস্থাপন করুন।

ট্রিগার/ট্রিগার.gs
/**
 * Creates a trigger for when a spreadsheet opens.
 * @see https://developers.google.com/apps-script/guides/triggers/installable
 */
function createSpreadsheetOpenTrigger() {
  const ss = SpreadsheetApp.getActive();
  ScriptApp.newTrigger("myFunction").forSpreadsheet(ss).onOpen().create();
}

একটি বিদ্যমান ইনস্টলযোগ্য ট্রিগার প্রোগ্রাম্যাটিকভাবে পরিবর্তন করতে, আপনাকে এটি মুছে ফেলতে হবে এবং একটি নতুন তৈরি করতে হবে। যদি আপনি পূর্বে একটি ট্রিগারের আইডি সংরক্ষণ করে থাকেন, তাহলে নিম্নলিখিত ফাংশনে একটি আর্গুমেন্ট হিসাবে আইডি পাস করে এটি মুছে ফেলুন।

ট্রিগার/ট্রিগার.gs
/**
 * Deletes a trigger.
 * @param {string} triggerId The Trigger ID.
 * @see https://developers.google.com/apps-script/guides/triggers/installable
 */
function deleteTrigger(triggerId) {
  // Loop over all triggers.
  const allTriggers = ScriptApp.getProjectTriggers();
  for (let index = 0; index < allTriggers.length; index++) {
    // If the current trigger is the correct one, delete it.
    if (allTriggers[index].getUniqueId() === triggerId) {
      ScriptApp.deleteTrigger(allTriggers[index]);
      break;
    }
  }
}

ট্রিগার তৈরি করার আগে, যাচাই করুন যে সংশ্লিষ্ট ফাংশনটিতে সমস্ত প্রয়োজনীয় OAuth অনুমতি রয়েছে।

ট্রিগারগুলিতে ত্রুটি

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

পরিবর্তে, অ্যাপস স্ক্রিপ্ট নিম্নলিখিত ধরণের একটি ইমেল পাঠায়:

From: noreply-apps-scripts-notifications@google.com
Subject: Summary of failures for Apps Script
Your script has recently failed to finish successfully.
A summary of the failure(s) is shown below.

ইমেলটিতে ট্রিগারটি নিষ্ক্রিয় বা পুনরায় কনফিগার করার জন্য একটি লিঙ্ক রয়েছে। যদি স্ক্রিপ্টটি কোনও Google Sheets, Docs, অথবা Forms ফাইলের সাথে আবদ্ধ থাকে, তাহলে ইমেলটিতে সেই ফাইলের একটি লিঙ্কও অন্তর্ভুক্ত থাকে। এই লিঙ্কগুলি আপনাকে ট্রিগারটি নিষ্ক্রিয় করতে বা বাগটি ঠিক করতে স্ক্রিপ্ট সম্পাদনা করতে দেয়।

আপনার স্ক্রিপ্টের ত্রুটিগুলি সমাধান করতে, আপনার স্ক্রিপ্ট প্রকল্পটি খুলতে বিজ্ঞপ্তি ইমেলের লিঙ্কে ক্লিক করুন। প্রকল্পটি খোলা হয়ে গেলে, বাম নেভিগেশন প্যানেলে Executions এ ক্লিক করে এক্সিকিউশন লগগুলি দেখুন। লগগুলি দেখায় যে কোন এক্সিকিউশনগুলি ব্যর্থ হয়েছে এবং সমস্যাটি নির্ণয় এবং সমাধান করতে আপনাকে সহায়তা করার জন্য ত্রুটি বার্তা অন্তর্ভুক্ত করে।

অ্যাড-অন দ্বারা তৈরি ইনস্টলযোগ্য ট্রিগারগুলি ব্যবহারকারীদের এই ইমেল বিজ্ঞপ্তিগুলি পাঠায় না।

আপনার গুগল অ্যাকাউন্টের সাথে সম্পর্কিত সমস্ত ট্রিগার পর্যালোচনা করতে এবং আপনার আর প্রয়োজন নেই এমন ট্রিগারগুলি নিষ্ক্রিয় করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. script.google.com এ যান।
  2. বাম দিকে, My Triggers এ ক্লিক করুন।
  3. ট্রিগার মুছে ফেলার জন্য, ট্রিগারের ডানদিকে, More > Delete trigger এ ক্লিক করুন।

যদি কোনও ট্রিগার নিষ্ক্রিয় করা হয়, তাহলে তার সাথে সম্পর্কিত ব্যর্থতার বিজ্ঞপ্তিগুলিও নিষ্ক্রিয় করা হয়। ব্যর্থতার বিজ্ঞপ্তিগুলি একটি সক্রিয় ট্রিগারের একটি অন্তর্নিহিত অংশ। ফলস্বরূপ, একটি নির্দিষ্ট ট্রিগারের জন্য সমস্ত ব্যর্থতার বিজ্ঞপ্তি পাওয়া বন্ধ করতে, ট্রিগারটি নিজেই নিষ্ক্রিয় করুন বা মুছে ফেলুন। যখন কোনও ট্রিগার সক্রিয় থাকে, তখন আপনি কেবল এই বিজ্ঞপ্তিগুলির ফ্রিকোয়েন্সি সামঞ্জস্য করতে পারেন।

 Simple triggers like `onOpen()` can't be deactivated from this
 page; instead, edit the appropriate script and remove or rename
 the `onOpen()` function.

অ্যাড-অনগুলিতে ট্রিগার

ইনস্টলযোগ্য ট্রিগার ছাড়াও, অ্যাড-অনগুলিতে ম্যানিফেস্ট ট্রিগার ব্যবহার করুন। আরও তথ্যের জন্য, Google Workspace অ্যাড-অনের জন্য ট্রিগার দেখুন।