যেসব অ্যাড-অন এবং অন্যান্য অ্যাপ্লিকেশন তাদের ডেটা অ্যাক্সেস করে বা তাদের পক্ষে কাজ করে, ব্যবহারকারীদের অবশ্যই সেগুলোকে অনুমোদন করতে হবে। যখন কোনো ব্যবহারকারী প্রথমবারের মতো একটি অ্যাড-অন চালান, তখন অনুমোদন প্রক্রিয়াটি শুরু করার জন্য অ্যাড-অন UI-তে একটি অনুমোদনের অনুরোধ প্রদর্শিত হয়।
এই কার্যপ্রবাহ চলাকালীন, প্রম্পটটি ব্যবহারকারীকে জানিয়ে দেয় যে অ্যাপ্লিকেশনটি কী করার অনুমতি চায়। উদাহরণস্বরূপ, একটি অ্যাড-অন কোনো ব্যবহারকারীর ইমেল বার্তা পড়ার বা তাদের ক্যালেন্ডারে ইভেন্ট তৈরি করার অনুমতি চাইতে পারে। অ্যাড-অনটির স্ক্রিপ্ট প্রজেক্ট এই স্বতন্ত্র অনুমতিগুলোকে OAuth স্কোপ হিসেবে সংজ্ঞায়িত করে।
আপনি আপনার ম্যানিফেস্টে ইউআরএল স্ট্রিং ব্যবহার করে স্কোপ ঘোষণা করেন। অনুমোদন প্রক্রিয়ার সময়, অ্যাপস স্ক্রিপ্ট ব্যবহারকারীর কাছে স্কোপটির একটি পাঠযোগ্য বিবরণ উপস্থাপন করে। উদাহরণস্বরূপ, আপনার অ্যাড-অনটি "Read current document" স্কোপটি ব্যবহার করতে পারে, যা আপনার ম্যানিফেস্টে https://www.googleapis.com/auth/documents.currentonly হিসেবে লেখা থাকে। অনুমোদন প্রক্রিয়ার সময়, এই স্কোপযুক্ত একটি অ্যাড-অন ব্যবহারকারীকে নিম্নলিখিত অনুমতি দিতে বলে: যে সমস্ত ডকুমেন্টে এই অ্যাপ্লিকেশনটি ইনস্টল করা হয়েছে, সেগুলি দেখা এবং পরিচালনা করা।
অ্যাপস স্ক্রিপ্ট তার বিভিন্ন সার্ভিসের জন্য যে স্কোপগুলো ব্যবহার করে, সেগুলো সংশ্লিষ্ট এপিআই (API) দ্বারা ব্যবহৃত স্কোপগুলোর সাথে ওভারল্যাপ করে। উদাহরণস্বরূপ, অ্যাপস স্ক্রিপ্টের ক্যালেন্ডার সার্ভিসটি ক্যালেন্ডার এপিআই-এর মতোই অনেকগুলো স্কোপ ব্যবহার করে। কোনো নির্দিষ্ট অ্যাপস স্ক্রিপ্ট সার্ভিস মেথডের জন্য কোন কোন স্কোপ প্রয়োজন, তা আপনি অ্যাপস স্ক্রিপ্ট রেফারেন্স ডকুমেন্টেশন থেকে দেখে নিতে পারেন।
স্কোপ দেখুন
আপনার স্ক্রিপ্ট প্রজেক্টের জন্য বর্তমানে প্রয়োজনীয় স্কোপগুলো দেখতে নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করুন:
- স্ক্রিপ্ট প্রজেক্টটি খুলুন।
- বাম দিকে, Overview ক্লিক করুন।
- 'Project OAuth Scopes'-এর অধীনে স্কোপগুলো দেখুন।
আপনি স্ক্রিপ্ট প্রজেক্টের বর্তমান স্কোপগুলো প্রজেক্ট ম্যানিফেস্টের oauthScopes ফিল্ডেও দেখতে পারেন, তবে শুধুমাত্র যদি আপনি সেই স্কোপগুলো স্পষ্টভাবে সেট করে থাকেন।
সুস্পষ্ট পরিধি নির্ধারণ করুন
অ্যাপস স্ক্রিপ্ট একটি স্ক্রিপ্টের কোড স্ক্যান করে প্রয়োজনীয় ফাংশন কলগুলো খুঁজে বের করার মাধ্যমে স্বয়ংক্রিয়ভাবে নির্ধারণ করে যে স্ক্রিপ্টটির জন্য কোন স্কোপগুলো প্রয়োজন। বেশিরভাগ স্ক্রিপ্টের জন্য এটিই যথেষ্ট এবং আপনার সময় বাঁচায়, কিন্তু প্রকাশিত অ্যাড-অনগুলোর ক্ষেত্রে স্কোপগুলোর উপর আপনার আরও সরাসরি নিয়ন্ত্রণ রাখা উচিত।
উদাহরণস্বরূপ, অ্যাপস স্ক্রিপ্ট ডিফল্টরূপে একটি অ্যাড-অন স্ক্রিপ্ট প্রজেক্টকে অত্যন্ত উদার স্কোপ https://mail.google.com দিতে পারে। যখন কোনো ব্যবহারকারী এই স্কোপসহ একটি স্ক্রিপ্ট প্রজেক্টকে অনুমোদন দেন, তখন প্রজেক্টটি ব্যবহারকারীর জিমেইল অ্যাকাউন্টে সম্পূর্ণ অ্যাক্সেস পেয়ে যায়। প্রকাশিত অ্যাড-অনগুলোর ক্ষেত্রে, আপনাকে অবশ্যই এই স্কোপটিকে আরও সীমিত একটি সেট দিয়ে প্রতিস্থাপন করতে হবে, যা কেবল অ্যাড-অনটির প্রয়োজন মেটাবে, এর বেশি কিছু নয়।
আপনার স্ক্রিপ্ট প্রজেক্টের ম্যানিফেস্ট ফাইল সম্পাদনা করে আপনি এর ব্যবহৃত স্কোপগুলো স্পষ্টভাবে সেট করতে পারেন। ম্যানিফেস্ট ফিল্ড ' oauthScopes হলো অ্যাড-অন দ্বারা ব্যবহৃত সমস্ত স্কোপের একটি অ্যারে। আপনার প্রজেক্টের স্কোপ সেট করতে, নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করুন:
- আপনার অ্যাড-অনটি যে স্কোপগুলো ব্যবহার করে তা দেখুন । কী কী পরিবর্তন করা প্রয়োজন, যেমন আরও সংকীর্ণ স্কোপ ব্যবহার করা, তা নির্ধারণ করুন।
- আপনার অ্যাড-অনের ম্যানিফেস্ট ফাইলটি খুলুন ।
-
oauthScopesলেবেলযুক্ত শীর্ষ-স্তরের ফিল্ডটি খুঁজুন। যদি এটি উপস্থিত না থাকে, তবে আপনি এটি যোগ করতে পারেন। oauthScopesফিল্ডটি স্ট্রিং-এর একটি অ্যারে নির্দিষ্ট করে। আপনার প্রজেক্ট যে স্কোপগুলো ব্যবহার করবে তা সেট করতে, এই অ্যারের বিষয়বস্তুগুলোকে আপনি যে স্কোপগুলো ব্যবহার করতে চান তা দিয়ে প্রতিস্থাপন করুন। উদাহরণস্বরূপ, Sheets-কে এক্সটেন্ড করে এমন একটি Editor অ্যাড-অনের জন্য আপনার নিম্নলিখিতটি থাকতে পারে:{ ... "oauthScopes": [ "https://www.googleapis.com/auth/script.container.ui", "https://www.googleapis.com/auth/spreadsheets" ], ... }ম্যানিফেস্ট ফাইলের পরিবর্তনগুলো সংরক্ষণ করুন।
OAuth যাচাইকরণ
কিছু সংবেদনশীল OAuth স্কোপ ব্যবহার করার জন্য আপনার অ্যাড-অনটি প্রকাশ করার আগে OAuth ক্লায়েন্ট যাচাইকরণের প্রয়োজন হতে পারে। আরও তথ্যের জন্য, নিম্নলিখিত নির্দেশিকাগুলি দেখুন:
- অ্যাপস স্ক্রিপ্টের জন্য OAuth ক্লায়েন্ট যাচাইকরণ
- যাচাইবিহীন অ্যাপ
- OAuth যাচাইকরণ সম্পর্কিত প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী
- গুগল এপিআই পরিষেবা: ব্যবহারকারীর ডেটা নীতি
সীমাবদ্ধ পরিধি
কিছু নির্দিষ্ট স্কোপ সীমাবদ্ধ এবং ব্যবহারকারীর ডেটা সুরক্ষিত রাখতে অতিরিক্ত নিয়মের অধীন। আপনি যদি এমন কোনো Gmail বা Editor অ্যাড-অন প্রকাশ করতে চান যা এক বা একাধিক সীমাবদ্ধ স্কোপ ব্যবহার করে, তবে প্রকাশের আগে অ্যাড-অনটিকে অবশ্যই সমস্ত নির্দিষ্ট সীমাবদ্ধতা মেনে চলতে হবে।
প্রকাশ করার চেষ্টা করার আগে সীমাবদ্ধ স্কোপগুলির সম্পূর্ণ তালিকা পর্যালোচনা করুন। যদি আপনার অ্যাড-অন সেগুলির কোনোটি ব্যবহার করে, তবে প্রকাশ করার পূর্বে আপনাকে অবশ্যই নির্দিষ্ট API স্কোপগুলির জন্য অতিরিক্ত প্রয়োজনীয়তাগুলি মেনে চলতে হবে।
ভিজ্যুয়াল স্টুডিও কোডের জন্য গুগল ওয়ার্কস্পেস ডেভেলপার টুলস এক্সটেনশনটি সমস্ত স্কোপের জন্য ডায়াগনস্টিক তথ্য প্রদান করে, যার মধ্যে স্কোপের বিবরণ এবং সেটি সংবেদনশীল বা সীমাবদ্ধ কিনা তাও অন্তর্ভুক্ত থাকে।
সম্পাদক অ্যাড-অন স্কোপ
যখন আপনি একটি এডিটর অ্যাড-অন তৈরি করেন, তখন প্রয়োজনীয় স্কোপগুলো নির্ধারিত হয় গুগল অ্যাপস স্ক্রিপ্ট সার্ভিস এবং অ্যাড-অন কোডটি যে মেথডগুলো ব্যবহার করে তার দ্বারা। উদাহরণস্বরূপ, একটি গুগল শিটস অ্যাড-অনের বিভিন্ন শিট থেকে তথ্য পড়ার জন্য https://www.googleapis.com/auth/spreadsheets.readonly স্কোপটির প্রয়োজন হতে পারে।
আপনার স্ক্রিপ্ট প্রজেক্টে কোড যোগ করার সাথে সাথে, অ্যাপস স্ক্রিপ্ট আপনার ব্যবহৃত সার্ভিসগুলোর জন্য প্রয়োজনীয় স্কোপগুলো স্বয়ংক্রিয়ভাবে নির্ধারণ করে। এডিটর অ্যাড-অনগুলোর ক্ষেত্রে, আপনাকে নিজে থেকে স্কোপ নির্ধারণ করে স্পষ্টভাবে সেট করার পরিবর্তে, প্রায়শই এই স্বয়ংক্রিয় স্কোপ সংগ্রহের উপরই নির্ভর করতে পারেন।
যদি আপনি আপনার স্কোপগুলো স্পষ্টভাবে সেট না করেন এবং আপনার এডিটর অ্যাড-অনটি শুধুমাত্র খোলা এডিটর ফাইলে রিড বা রাইট করে, তাহলে আপনার স্ক্রিপ্ট প্রজেক্ট ফাইলগুলোর মধ্যে একটিতে নিম্নলিখিত কমেন্টটি যোগ করুন:
/**
* @OnlyCurrentDoc
*/
এই কমেন্টটি অ্যাপস স্ক্রিপ্টকে নির্দেশ দেয় যে, এটি যেন এডিটর ফাইলের স্কোপগুলোকে currentonly হিসেবে সেট করে। উদাহরণস্বরূপ, যদি আপনি একটি শীটস অ্যাড-অন স্ক্রিপ্ট প্রজেক্ট ফাইলে এই কমেন্টটি যোগ করেন, তাহলে আপনি নির্দিষ্ট করে দিচ্ছেন যে অ্যাড-অনটির শুধুমাত্র খোলা শীটটিতে কাজ করার অনুমতি প্রয়োজন, এবং ব্যবহারকারীর গুগল ড্রাইভে থাকা অন্য কোনো শীটে কাজ করার অনুমতি লাগবে না। বিপরীতভাবে, যদি আপনার শীটস অ্যাড-অনটির এমন কোনো শীটে ডেটা পড়া বা লেখার প্রয়োজন হয় যা ব্যবহারকারী খুলে রাখেননি, তাহলে আপনার এই কমেন্টটি ব্যবহার করা উচিত নয়।