স্ক্রিপ্ট পাবলিশিং এবং ট্রিগার অ্যাক্সেস ও পরিচালনা করুন। এই ক্লাসটি ব্যবহারকারীদের স্ক্রিপ্ট ট্রিগার তৈরি করতে এবং একটি সার্ভিস হিসেবে স্ক্রিপ্ট পাবলিশিং নিয়ন্ত্রণ করতে দেয়।
বৈশিষ্ট্য
| সম্পত্তি | প্রকার | বর্ণনা |
|---|---|---|
Auth Mode | Auth Mode | একটি গণনা যা শনাক্ত করে যে, অ্যাপস স্ক্রিপ্ট একটি ট্রিগারড ফাংশনের মাধ্যমে অনুমোদিত পরিষেবাগুলোর কোন কোন বিভাগ সম্পাদন করতে সক্ষম। |
Authorization Status | Authorization Status | একটি স্ক্রিপ্টের অনুমোদন স্থিতি নির্দেশকারী একটি গণনা। |
Event Type | Event Type | একটি গণনা যা সংঘটিত ঘটনার ধরণ নির্দেশ করে। |
Installation Source | Installation Source | একটি এনুমারেশন যা নির্দেশ করে, স্ক্রিপ্টটি ব্যবহারকারীর কাছে কীভাবে একটি অ্যাড-অন হিসেবে ইনস্টল করা হয়েছিল। |
Trigger Source | Trigger Source | একটি গণনা যা সেই ঘটনার উৎস নির্দেশ করে, যার কারণে ট্রিগারটি সক্রিয় হয়। |
Week Day | Weekday | সপ্তাহের দিনগুলোকে নির্দেশকারী একটি তালিকা। |
পদ্ধতি
| পদ্ধতি | রিটার্ন টাইপ | সংক্ষিপ্ত বিবরণ |
|---|---|---|
delete Trigger(trigger) | void | প্রদত্ত ট্রিগারটি সরিয়ে দেয়, ফলে এটি আর চলে না। |
get Authorization Info(authMode) | Authorization Info | এমন একটি অবজেক্ট পাওয়া যায় যা যাচাই করে দেখে যে ব্যবহারকারী স্ক্রিপ্টের সমস্ত প্রয়োজনীয়তার জন্য অনুমোদন দিয়েছেন কিনা। |
get Authorization Info(authMode, oAuthScopes) | Authorization Info | এমন একটি অবজেক্ট পাওয়া যায় যা যাচাই করে দেখে যে ব্যবহারকারী অনুরোধ করা স্কোপগুলোর জন্য অনুমোদন দিয়েছেন কিনা। |
get Identity Token() | String|null | যদি openid স্কোপটি মঞ্জুর করা হয়ে থাকে, তবে কার্যকর ব্যবহারকারীর জন্য একটি Open ID Connect আইডেন্টিটি টোকেন পাওয়া যায়। |
get Installation Source() | Installation Source | একটি enum ভ্যালু রিটার্ন করে যা নির্দেশ করে যে স্ক্রিপ্টটি বর্তমান ব্যবহারকারীর জন্য কীভাবে একটি অ্যাড-অন হিসাবে ইনস্টল হয়েছে (উদাহরণস্বরূপ, ব্যবহারকারী নিজে Chrome Web Store থেকে এটি ইনস্টল করেছেন, নাকি কোনো ডোমেইন অ্যাডমিনিস্ট্রেটর সকল ব্যবহারকারীর জন্য এটি ইনস্টল করেছেন)। |
get OAuth Token() | String | কার্যকরী ব্যবহারকারীর জন্য OAuth 2.0 অ্যাক্সেস টোকেন সংগ্রহ করে। |
get Project Triggers() | Trigger[] | বর্তমান প্রজেক্ট এবং বর্তমান ব্যবহারকারীর সাথে যুক্ত সমস্ত ইনস্টলযোগ্য ট্রিগার খুঁজে বের করে। |
get Script Id() | String | স্ক্রিপ্ট প্রজেক্টের অনন্য আইডিটি পাওয়া যায়। |
get Service() | Service | স্ক্রিপ্টটিকে একটি ওয়েব অ্যাপ হিসেবে প্রকাশ করা নিয়ন্ত্রণ করতে ব্যবহৃত একটি অবজেক্ট পাওয়া যায়। |
get User Triggers(document) | Trigger[] | প্রদত্ত ডকুমেন্টে এই ব্যবহারকারীর মালিকানাধীন সমস্ত ইনস্টলযোগ্য ট্রিগার খুঁজে বের করে, যা শুধুমাত্র এই স্ক্রিপ্ট বা অ্যাড-অনের জন্য প্রযোজ্য। |
get User Triggers(form) | Trigger[] | শুধুমাত্র এই স্ক্রিপ্ট বা অ্যাড-অনের জন্য, এই ব্যবহারকারীর মালিকানাধীন প্রদত্ত ফর্ম্যাটের সমস্ত ইনস্টলযোগ্য ট্রিগার খুঁজে বের করে। |
get User Triggers(spreadsheet) | Trigger[] | প্রদত্ত স্প্রেডশিটে এই ব্যবহারকারীর মালিকানাধীন সমস্ত ইনস্টলযোগ্য ট্রিগার খুঁজে বের করে, যা শুধুমাত্র এই স্ক্রিপ্ট বা অ্যাড-অনের জন্য প্রযোজ্য। |
invalidate Auth() | void | কার্যকর ব্যবহারকারীর বর্তমান স্ক্রিপ্টটি চালানোর অনুমোদন বাতিল করে। |
new State Token() | State Token Builder | একটি স্টেট টোকেনের জন্য বিল্ডার তৈরি করে যা একটি কলব্যাক এপিআই-তে (যেমন একটি OAuth ফ্লো) ব্যবহার করা যেতে পারে। |
new Trigger(functionName) | Trigger Builder | একটি ইনস্টলযোগ্য ট্রিগার তৈরির প্রক্রিয়া শুরু করে, যা সক্রিয় হলে একটি নির্দিষ্ট ফাংশনকে কল করে। |
require All Scopes(authMode) | void | স্ক্রিপ্ট দ্বারা অনুরোধ করা সমস্ত স্কোপের জন্য ব্যবহারকারী সম্মতি দিয়েছেন কিনা তা যাচাই করে। |
require Scopes(authMode, oAuthScopes) | void | ব্যবহারকারী অনুরোধকৃত স্কোপগুলোর জন্য সম্মতি দিয়েছেন কিনা তা যাচাই করে। |
বিস্তারিত ডকুমেন্টেশন
deleteTrigger(trigger)
প্রদত্ত ট্রিগারটি সরিয়ে দেয়, ফলে এটি আর চলে না।
// Deletes all triggers in the current project. const triggers = ScriptApp.getProjectTriggers(); for (let i = 0; i < triggers.length; i++) { ScriptApp.deleteTrigger(triggers[i]); }
প্যারামিটার
| নাম | প্রকার | বর্ণনা |
|---|---|---|
trigger | Trigger | মুছে ফেলার ট্রিগার। |
অনুমোদন
যে স্ক্রিপ্টগুলো এই পদ্ধতি ব্যবহার করে, সেগুলোর জন্য নিম্নলিখিত এক বা একাধিক স্কোপের মাধ্যমে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/script.scriptapp
getAuthorizationInfo(authMode)
এমন একটি অবজেক্ট পাওয়া যায় যা যাচাই করে দেখে যে ব্যবহারকারী স্ক্রিপ্টের সমস্ত প্রয়োজনীয়তার জন্য অনুমোদন দিয়েছেন কিনা। যদি স্ক্রিপ্টের কোনো একটি প্রয়োজনীয়তার জন্য অনুমোদন দেওয়া না থাকে, তবে সেই অনুমতিগুলো দেওয়ার জন্য অবজেক্টটি একটি অনুমোদন URL-ও প্রদান করে।
কিছু স্ক্রিপ্ট ব্যবহারকারীর সম্মতি ছাড়াই তার ব্যবহৃত সমস্ত প্রয়োজনীয় স্কোপের জন্য চালু হতে পারে। এই অবজেক্টের তথ্য আপনাকে কোডের সেইসব অংশে অ্যাক্সেস নিয়ন্ত্রণ করতে দেয় যেগুলোর জন্য নির্দিষ্ট স্কোপ প্রয়োজন এবং পরবর্তী এক্সিকিউশনের জন্য সেই স্কোপগুলোর অনুমোদনের অনুরোধ করতে দেয়।
const authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL); const status = authInfo.getAuthorizationStatus(); const url = authInfo.getAuthorizationUrl();
প্যারামিটার
| নাম | প্রকার | বর্ণনা |
|---|---|---|
auth Mode | Auth Mode | যে অনুমোদন মোডের জন্য অনুমোদনের তথ্য অনুরোধ করা হচ্ছে; প্রায় সব ক্ষেত্রেই, auth Mode এর মান Script App.getAuthorizationInfo(ScriptApp.AuthMode.FULL) হওয়া উচিত, কারণ অন্য কোনো অনুমোদন মোডে ব্যবহারকারীদের অনুমোদনের প্রয়োজন হয় না। |
ফেরত
AuthorizationInfo — এমন একটি অবজেক্ট যা ব্যবহারকারীর অনুমোদনের অবস্থা সম্পর্কে তথ্য প্রদান করতে পারে।
getAuthorizationInfo(authMode, oAuthScopes)
এমন একটি অবজেক্ট পাওয়া যায় যা যাচাই করে দেখে যে ব্যবহারকারী অনুরোধ করা স্কোপগুলোর জন্য অনুমোদন দিয়েছেন কিনা। যদি অনুরোধ করা স্কোপগুলোর কোনোটির অনুমোদন না থাকে, তবে সেই অনুমতিগুলো দেওয়ার জন্য অবজেক্টটি একটি অনুমোদন URL-ও প্রদান করে।
কিছু স্ক্রিপ্ট ব্যবহারকারীর অনুমতি ছাড়াই চালু হয়ে যেতে পারে, বিশেষ করে স্ক্রিপ্ট দ্বারা ব্যবহৃত সমস্ত প্রয়োজনীয় স্কোপের ক্ষেত্রে। এই অবজেক্টের তথ্য আপনাকে কোডের সেইসব অংশে অ্যাক্সেস নিয়ন্ত্রণ করতে দেয় যেগুলোর জন্য নির্দিষ্ট স্কোপ প্রয়োজন এবং পরবর্তী এক্সিকিউশনের জন্য সেই স্কোপগুলোর অনুমোদন চাইতে সাহায্য করে। যে স্কোপগুলো অবৈধ বা স্ক্রিপ্টের জন্য অপ্রয়োজনীয়, সেগুলো একটি এরর বা ত্রুটির কারণ হয়।
const authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL, [ 'https://www.googleapis.com/auth/documents', 'https://www.googleapis.com/auth/presentations', ]); const status = authInfo.getAuthorizationStatus(); const url = authInfo.getAuthorizationUrl();
প্যারামিটার
| নাম | প্রকার | বর্ণনা |
|---|---|---|
auth Mode | Auth Mode | যে অনুমোদন মোডের জন্য অনুমোদনের তথ্য অনুরোধ করা হচ্ছে; প্রায় সব ক্ষেত্রেই, auth Mode এর মান Script App.AuthMode.FULL হওয়া উচিত, কারণ অন্য কোনো অনুমোদন মোডে ব্যবহারকারীদের অনুমোদনের প্রয়োজন হয় না। |
oAuthScopes | String[] | OAuth স্কোপগুলো, যেগুলোর জন্য অনুমোদনের তথ্য অনুরোধ করা হয়। |
ফেরত
AuthorizationInfo — একটি অবজেক্ট যা ব্যবহারকারীর অনুমোদনের অবস্থা সম্পর্কে তথ্য এবং কিছু সম্মতি অনুপস্থিত থাকলে একটি অনুমোদন URL প্রদান করে।
getIdentityToken()
যদি openid স্কোপটি মঞ্জুর করা হয়ে থাকে, তবে কার্যকর ব্যবহারকারীর জন্য একটি OpenID Connect আইডেন্টিটি টোকেন পাওয়া যায়। এই স্কোপটি ডিফল্টরূপে অন্তর্ভুক্ত থাকে না, এবং এটি অনুরোধ করার জন্য আপনাকে ম্যানিফেস্ট ফাইলে এটিকে একটি সুস্পষ্ট স্কোপ হিসাবে যোগ করতে হবে। টোকেনে অতিরিক্ত ব্যবহারকারীর তথ্য ফেরত পেতে https://www.googleapis.com/auth/userinfo.email অথবা https://www.googleapis.com/auth/userinfo.profile স্কোপগুলো অন্তর্ভুক্ত করুন।
ফেরত আসা আইডি টোকেনটি একটি এনকোডেড JSON ওয়েব টোকেন (JWT) , এবং এর থেকে তথ্য বের করার জন্য এটিকে অবশ্যই ডিকোড করতে হবে। নিচের উদাহরণে দেখানো হয়েছে কীভাবে টোকেনটি ডিকোড করে কার্যকর ব্যবহারকারীর গুগল প্রোফাইল আইডি বের করতে হয়।
const idToken = ScriptApp.getIdentityToken(); const body = idToken.split('.')[1]; const decoded = Utilities .newBlob( Utilities.base64Decode(body), ) .getDataAsString(); const payload = JSON.parse(decoded); Logger.log(`Profile ID: ${payload.sub}`);
ফেরত
String|null — পরিচয় টোকেন, যদি উপলব্ধ থাকে; অন্যথায় null ।
getInstallationSource()
একটি enum ভ্যালু রিটার্ন করে যা নির্দেশ করে যে স্ক্রিপ্টটি বর্তমান ব্যবহারকারীর জন্য কীভাবে একটি অ্যাড-অন হিসাবে ইনস্টল হয়েছে (উদাহরণস্বরূপ, ব্যবহারকারী নিজে Chrome Web Store থেকে এটি ইনস্টল করেছেন, নাকি কোনো ডোমেইন অ্যাডমিনিস্ট্রেটর সকল ব্যবহারকারীর জন্য এটি ইনস্টল করেছেন)।
ফেরত
InstallationSource — ইনস্টলেশনের উৎস।
getOAuthToken()
কার্যকরী ব্যবহারকারীর জন্য OAuth 2.0 অ্যাক্সেস টোকেন সংগ্রহ করে। যদি স্ক্রিপ্টের OAuth স্কোপগুলো অন্য কোনো গুগল এপিআই-কে অনুমোদন করার জন্য যথেষ্ট হয়, যার জন্য সাধারণত নিজস্ব OAuth ফ্লো প্রয়োজন হয় (যেমন গুগল পিকার ), তবে স্ক্রিপ্টগুলো এর পরিবর্তে এই টোকেনটি পাস করে দ্বিতীয় অনুমোদন প্রম্পটটি এড়িয়ে যেতে পারে। টোকেনটির মেয়াদ একটি নির্দিষ্ট সময় পর (কমপক্ষে কয়েক মিনিট) শেষ হয়ে যায়; স্ক্রিপ্টগুলোর উচিত অনুমোদন ব্যর্থতা সামাল দেওয়া এবং প্রয়োজনে একটি নতুন টোকেন পাওয়ার জন্য এই মেথডটি কল করা।
এই মেথড দ্বারা ফেরত আসা টোকেনটিতে শুধুমাত্র সেই স্কোপগুলোই অন্তর্ভুক্ত থাকে যা স্ক্রিপ্টটির বর্তমানে প্রয়োজন। যে স্কোপগুলো পূর্বে অনুমোদিত ছিল কিন্তু স্ক্রিপ্টটি আর ব্যবহার করে না, সেগুলো ফেরত আসা টোকেনে অন্তর্ভুক্ত করা হয় না। স্ক্রিপ্টটির নিজস্ব প্রয়োজনের বাইরে যদি অতিরিক্ত OAuth স্কোপের প্রয়োজন হয়, তবে সেগুলো স্ক্রিপ্টের ম্যানিফেস্ট ফাইলে উল্লেখ করা যেতে পারে।
অ্যাপস স্ক্রিপ্ট সরাসরি সমর্থন করে না এমন গুগল এপিআই কল করতে আপনি এই পদ্ধতিটি ব্যবহার করতে পারেন। UrlFetchApp.fetch(url, params) ব্যবহার করে একটি HTTP অনুরোধের `Authorization` হেডারে ফেরত আসা টোকেনটি পাস করুন।
const url = 'https://www.googleapis.com/drive/v3/files'; const method = 'GET'; const headers = { Authorization: 'Bearer ' + ScriptApp.getOAuthToken(), }; const response = UrlFetchApp.fetch(url, { method, headers, });
ফেরত
String — OAuth 2.0 টোকেনের একটি স্ট্রিং উপস্থাপনা।
getProjectTriggers()
বর্তমান প্রজেক্ট এবং বর্তমান ব্যবহারকারীর সাথে যুক্ত সমস্ত ইনস্টলযোগ্য ট্রিগার খুঁজে বের করে।
Logger.log( `Current project has ${ScriptApp.getProjectTriggers().length} triggers.`, );
ফেরত
Trigger[] — এই প্রকল্পের সাথে যুক্ত বর্তমান ব্যবহারকারীর ট্রিগারগুলির একটি অ্যারে।
অনুমোদন
যে স্ক্রিপ্টগুলো এই পদ্ধতি ব্যবহার করে, সেগুলোর জন্য নিম্নলিখিত এক বা একাধিক স্কোপের মাধ্যমে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/script.scriptapp
getScriptId()
স্ক্রিপ্ট প্রজেক্টের অনন্য আইডিটি পাওয়া যায়। এর পরিবর্তে স্ক্রিপ্ট প্রজেক্টের অনন্য শনাক্তকারী পাওয়ার জন্য এটিই পছন্দনীয় পদ্ধতি। এই আইডিটি সেই সমস্ত জায়গায় ব্যবহার করা যেতে পারে যেখানে পূর্বে প্রজেক্ট কী প্রদান করা হয়েছিল।getProjectKey()
ফেরত
String — স্ক্রিপ্ট প্রজেক্টের আইডি।
getService()
স্ক্রিপ্টটিকে একটি ওয়েব অ্যাপ হিসেবে প্রকাশ করা নিয়ন্ত্রণ করতে ব্যবহৃত একটি অবজেক্ট পাওয়া যায়।
// Get the URL of the published web app. const url = ScriptApp.getService().getUrl();
ফেরত
Service — একটি অবজেক্ট যা স্ক্রিপ্টটিকে ওয়েব অ্যাপ হিসেবে প্রকাশ করা পর্যবেক্ষণ ও নিয়ন্ত্রণ করতে ব্যবহৃত হয়।
getUserTriggers(document)
প্রদত্ত ডকুমেন্টে এই ব্যবহারকারীর মালিকানাধীন সমস্ত ইনস্টলযোগ্য ট্রিগার খুঁজে বের করে, যা শুধুমাত্র এই স্ক্রিপ্ট বা অ্যাড-অনের জন্য প্রযোজ্য। অন্য স্ক্রিপ্টের সাথে সংযুক্ত ট্রিগারগুলো দেখার জন্য এই পদ্ধতিটি ব্যবহার করা যাবে না।
const doc = DocumentApp.getActiveDocument(); const triggers = ScriptApp.getUserTriggers(doc); // Log the handler function for the first trigger in the array. Logger.log(triggers[0].getHandlerFunction());
প্যারামিটার
| নাম | প্রকার | বর্ণনা |
|---|---|---|
document | Document | একটি গুগল ডক্স ফাইল যাতে ইনস্টলযোগ্য ট্রিগার থাকতে পারে। |
ফেরত
Trigger[] — প্রদত্ত ডকুমেন্টে এই ব্যবহারকারীর মালিকানাধীন ট্রিগারগুলির একটি অ্যারে।
অনুমোদন
যে স্ক্রিপ্টগুলো এই পদ্ধতি ব্যবহার করে, সেগুলোর জন্য নিম্নলিখিত এক বা একাধিক স্কোপের মাধ্যমে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/script.scriptapp
getUserTriggers(form)
এই ব্যবহারকারীর মালিকানাধীন, প্রদত্ত ফর্মে থাকা সমস্ত ইনস্টলযোগ্য ট্রিগার শুধুমাত্র এই স্ক্রিপ্ট বা অ্যাড-অনের জন্য পাওয়া যায়। অন্য স্ক্রিপ্টের সাথে সংযুক্ত ট্রিগারগুলি দেখার জন্য এই পদ্ধতিটি ব্যবহার করা যাবে না।
const form = FormApp.getActiveForm(); const triggers = ScriptApp.getUserTriggers(form); // Log the trigger source for the first trigger in the array. Logger.log(triggers[0].getTriggerSource());
প্যারামিটার
| নাম | প্রকার | বর্ণনা |
|---|---|---|
form | Form | একটি গুগল ফর্মস ফাইল যাতে ইনস্টলযোগ্য ট্রিগার থাকতে পারে। |
ফেরত
Trigger[] — প্রদত্ত ফর্মে এই ব্যবহারকারীর মালিকানাধীন ট্রিগারগুলির একটি অ্যারে।
অনুমোদন
যে স্ক্রিপ্টগুলো এই পদ্ধতি ব্যবহার করে, সেগুলোর জন্য নিম্নলিখিত এক বা একাধিক স্কোপের মাধ্যমে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/script.scriptapp
getUserTriggers(spreadsheet)
প্রদত্ত স্প্রেডশিটে এই ব্যবহারকারীর মালিকানাধীন সমস্ত ইনস্টলযোগ্য ট্রিগার খুঁজে বের করে, যা শুধুমাত্র এই স্ক্রিপ্ট বা অ্যাড-অনের জন্য প্রযোজ্য। অন্য স্ক্রিপ্টের সাথে সংযুক্ত ট্রিগারগুলো দেখার জন্য এই পদ্ধতিটি ব্যবহার করা যাবে না।
const ss = SpreadsheetApp.getActiveSpreadsheet(); const triggers = ScriptApp.getUserTriggers(ss); // Log the event type for the first trigger in the array. Logger.log(triggers[0].getEventType());
প্যারামিটার
| নাম | প্রকার | বর্ণনা |
|---|---|---|
spreadsheet | Spreadsheet | একটি গুগল শিটস ফাইল যাতে ইনস্টলযোগ্য ট্রিগার থাকতে পারে। |
ফেরত
Trigger[] — প্রদত্ত স্প্রেডশিটে এই ব্যবহারকারীর মালিকানাধীন ট্রিগারগুলির একটি অ্যারে।
অনুমোদন
যে স্ক্রিপ্টগুলো এই পদ্ধতি ব্যবহার করে, সেগুলোর জন্য নিম্নলিখিত এক বা একাধিক স্কোপের মাধ্যমে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/script.scriptapp
invalidateAuth()
বর্তমান স্ক্রিপ্টটি চালানোর জন্য কার্যকর ব্যবহারকারীর যে অনুমোদন রয়েছে, তা বাতিল করে। বর্তমান স্ক্রিপ্টের যেকোনো অনুমতি বাতিল করতে এটি ব্যবহৃত হয়। এটি বিশেষত ‘ওয়ান-শট অথরাইজেশন’ হিসেবে ট্যাগ করা ফাংশনগুলোর জন্য উপযোগী। যেহেতু ওয়ান-শট অথরাইজেশন ফাংশনগুলো স্ক্রিপ্ট অনুমোদন পাওয়ার পর শুধুমাত্র প্রথমবার চালানোর সময়ই কল করা যায়, তাই আপনি যদি এর পরে কোনো কাজ করতে চান, তবে আপনাকে অবশ্যই স্ক্রিপ্টটির থাকা যেকোনো অনুমোদন প্রত্যাহার করতে হবে, যাতে ব্যবহারকারী আবার অনুমোদনের ডায়ালগটি দেখতে পায়।
ScriptApp.invalidateAuth();
নিক্ষেপ
Error — যখন বাতিলকরণ ব্যর্থ হয়
newStateToken()
একটি স্টেট টোকেনের জন্য বিল্ডার তৈরি করে যা একটি কলব্যাক এপিআই-তে (যেমন একটি OAuth ফ্লো) ব্যবহার করা যেতে পারে।
// Generate a callback URL, given the name of a callback function. The script // does not need to be published as a web app; the /usercallback URL suffix // replaces /edit in any script's URL. function getCallbackURL(callbackFunction) { // IMPORTANT: Replace string below with the URL from your script, minus the // /edit at the end. const scriptUrl = 'https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz'; const urlSuffix = '/usercallback?state='; const stateToken = ScriptApp.newStateToken() .withMethod(callbackFunction) .withTimeout(120) .createToken(); return scriptUrl + urlSuffix + stateToken; }
বেশিরভাগ OAuth2 ফ্লো-তে, state টোকেনটি সরাসরি অথরাইজেশন এন্ডপয়েন্টে পাঠানো হয় (কলব্যাক URL-এর অংশ হিসেবে নয়), এবং অথরাইজেশন এন্ডপয়েন্টটি তখন সেটিকে কলব্যাক URL-এর অংশ হিসেবে পাঠিয়ে দেয়।
উদাহরণস্বরূপ:
- স্ক্রিপ্টটি ব্যবহারকারীকে OAuth2 অনুমোদন URL-এ পুনঃনির্দেশিত করে:
https://accounts.google.com/o/oauth2/auth?state=token_generated_with_this_method&callback_uri=https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback&other_oauth2_parameters - ব্যবহারকারী 'authorize'-এ ক্লিক করলে, OAuth2 অনুমোদন পৃষ্ঠাটি ব্যবহারকারীকে
https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback?state=token_generated_with_this_method&other_params_that_include_tokens_or_grants-এ ফেরত পাঠায়। - উপরের রিডাইরেক্টটি (
http://script.google.com/...-এ ফিরে যাওয়া) ব্রাউজারকে/usercallback-এ অনুরোধ পাঠাতে বাধ্য করে, যাStateTokenBuilder.withMethod(method)দ্বারা নির্দিষ্ট মেথডটিকে কল করে।
ফেরত
StateTokenBuilder — স্টেট-টোকেন তৈরির প্রক্রিয়া চালিয়ে যাওয়ার জন্য ব্যবহৃত একটি অবজেক্ট।
newTrigger(functionName)
একটি ইনস্টলযোগ্য ট্রিগার তৈরির প্রক্রিয়া শুরু করে, যা সক্রিয় হলে একটি নির্দিষ্ট ফাংশনকে কল করে।
// Creates an edit trigger for a spreadsheet identified by ID. ScriptApp.newTrigger('myFunction') .forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3') .onEdit() .create();
ট্রিগার তৈরি করার আগে, যাচাই করে নিন যে সংশ্লিষ্ট ফাংশনটির সমস্ত প্রয়োজনীয় OAuth অনুমতি রয়েছে।
প্যারামিটার
| নাম | প্রকার | বর্ণনা |
|---|---|---|
function Name | String | ট্রিগারটি সক্রিয় হলে যে ফাংশনটি কল করা হবে। আপনি অন্তর্ভুক্ত লাইব্রেরি, যেমন Library.libFunction1 থেকে ফাংশন ব্যবহার করতে পারেন। |
ফেরত
TriggerBuilder — ট্রিগার তৈরির প্রক্রিয়া চালিয়ে যাওয়ার জন্য ব্যবহৃত একটি অবজেক্ট।
অনুমোদন
যে স্ক্রিপ্টগুলো এই পদ্ধতি ব্যবহার করে, সেগুলোর জন্য নিম্নলিখিত এক বা একাধিক স্কোপের মাধ্যমে অনুমোদনের প্রয়োজন হয়:
-
https://www.googleapis.com/auth/script.scriptapp
requireAllScopes(authMode)
স্ক্রিপ্ট দ্বারা অনুরোধ করা সমস্ত স্কোপের জন্য ব্যবহারকারী সম্মতি দিয়েছেন কিনা তা যাচাই করে। যদি কোনো এক্সিকিউশন ফ্লো একটি স্ক্রিপ্টের অনুরোধ করা সমস্ত স্কোপের উপর নির্ভর করে, তাহলে এই মেথডটি ব্যবহার করুন। যদি কোনো সম্মতি অনুপস্থিত থাকে, তাহলে এই মেথডটি বর্তমান এক্সিকিউশন বন্ধ করে দেয় এবং অনুপস্থিত সম্মতিগুলো অনুরোধ করার জন্য একটি অথরাইজেশন প্রম্পট প্রদর্শন করে।
এই পদ্ধতিটি কেবল তখনই কাজ করে যখন ব্যবহারকারীরা গ্র্যানুলার কনসেন্ট সমর্থন করে এমন কোনো প্ল্যাটফর্ম থেকে স্ক্রিপ্টটি চালান, যেমন অ্যাপস স্ক্রিপ্ট IDE-এর ভেতর থেকে। যখন কোনো অসমর্থিত প্ল্যাটফর্ম, যেমন গুগল ওয়ার্কস্পেস অ্যাড-অন থেকে, প্রয়োজনীয় কনসেন্ট ছাড়া স্ক্রিপ্টটি চালানো হয়, তখন এটি চলার শুরুতে সমস্ত স্কোপের অনুমতি চাওয়ার জন্য একটি অথরাইজেশন প্রম্পট প্রদর্শন করে।
ScriptApp.requireAllScopes(ScriptApp.AuthMode.FULL);
প্যারামিটার
| নাম | প্রকার | বর্ণনা |
|---|---|---|
auth Mode | Auth Mode | যে অথরাইজেশন মোডের জন্য স্ক্রিপ্ট স্কোপগুলো মূল্যায়ন করা প্রয়োজন, প্রায় সব ক্ষেত্রেই auth Mode এর মান Script App.AuthMode.FULL হওয়া উচিত, কারণ অন্য কোনো অথরাইজেশন মোডে ব্যবহারকারীদের অনুমোদনের প্রয়োজন হয় না। |
requireScopes(authMode, oAuthScopes)
ব্যবহারকারী অনুরোধ করা স্কোপগুলির জন্য সম্মতি দিয়েছেন কিনা তা যাচাই করে। যদি কোনো এক্সিকিউশন ফ্লো এক বা একাধিক সার্ভিসের উপর নির্ভর করে, তবে এই মেথডটি ব্যবহার করুন। যদি নির্দিষ্ট সম্মতিগুলির কোনোটি অনুপস্থিত থাকে, তবে এই মেথডটি বর্তমান এক্সিকিউশনটি বন্ধ করে দেয় এবং অনুপস্থিত সম্মতিগুলির জন্য অনুরোধ করতে একটি অথরাইজেশন প্রম্পট প্রদর্শন করে। যে স্কোপগুলি অবৈধ বা স্ক্রিপ্টের জন্য অপ্রয়োজনীয় , সেগুলি একটি এররের কারণ হয়।
এই পদ্ধতিটি কেবল তখনই কাজ করে যখন ব্যবহারকারীরা গ্র্যানুলার কনসেন্ট সমর্থন করে এমন কোনো প্ল্যাটফর্ম থেকে স্ক্রিপ্টটি চালান, যেমন অ্যাপস স্ক্রিপ্ট IDE-এর ভেতর থেকে। যখন কোনো অসমর্থিত প্ল্যাটফর্ম, যেমন গুগল ওয়ার্কস্পেস অ্যাড-অন থেকে, প্রয়োজনীয় কনসেন্ট ছাড়া স্ক্রিপ্টটি চালানো হয়, তখন এটি চলার শুরুতে সমস্ত স্কোপের অনুমতি চাওয়ার জন্য একটি অথরাইজেশন প্রম্পট প্রদর্শন করে।
ScriptApp.requireScopes(ScriptApp.AuthMode.FULL, [ 'https://www.googleapis.com/auth/documents', 'https://www.googleapis.com/auth/presentations', ]);
প্যারামিটার
| নাম | প্রকার | বর্ণনা |
|---|---|---|
auth Mode | Auth Mode | যে অনুমোদন মোডের জন্য অনুরোধকৃত স্কোপগুলো মূল্যায়ন করা প্রয়োজন, প্রায় সব ক্ষেত্রেই auth Mode এর মান Script App.AuthMode.FULL হওয়া উচিত, কারণ অন্য কোনো অনুমোদন মোডে ব্যবহারকারীদের অনুমোদনের প্রয়োজন হয় না। |
oAuthScopes | String[] | প্রদত্ত কার্যপ্রবাহটি সম্পন্ন করার জন্য প্রয়োজনীয় OAuth স্কোপসমূহ। |