গুগল ড্রাইভ ব্যবহার করার সময় গুগল ওয়ার্কস্পেস অ্যাড-অনগুলো ব্যবহারকারীকে নিজস্ব ইন্টারফেস প্রদান করতে পারে। এর মাধ্যমে আপনি ব্যবহারকারীকে অতিরিক্ত প্রাসঙ্গিক তথ্য দিতে, কাজ স্বয়ংক্রিয় করতে এবং তৃতীয় পক্ষের সিস্টেমগুলোকে গুগল ড্রাইভের সাথে সংযুক্ত করতে পারেন।
অ্যাড-অন UI অ্যাক্সেস করা
আপনি গুগল ড্রাইভে একটি গুগল ওয়ার্কস্পেস অ্যাড-অন খুলতে পারবেন, যদি ড্রাইভ ইউজার ইন্টারফেসের ডানদিকের আইকন কলামে এর আইকনটি দেখা যায়। একটি গুগল ওয়ার্কস্পেস অ্যাড-অন একটি হোমপেজ ইন্টারফেস, একটি আইটেম সিলেক্ট ইন্টারফেস, অথবা উভয়ই নির্ধারণ করতে পারে:
- যদি কোনো ব্যবহারকারী গুগল ড্রাইভে থাকা অবস্থায় অ্যাড-অন আইকনে ক্লিক করেন, তাহলে অ্যাড-অনটি সংশ্লিষ্ট
drive.homepageTriggerফাংশনটি (যদি থাকে) কার্যকর করে। এই ফাংশনটি প্রদর্শনের জন্য একটি হোমপেজ কার্ড তৈরি করে গুগল ড্রাইভে ফেরত পাঠায়। যদি কোনোdrive.homepageTriggerফাংশন সংজ্ঞায়িত না থাকে, তাহলে তার পরিবর্তে একটি জেনেরিক হোমপেজ কার্ড প্রদর্শিত হয়। - যদি ব্যবহারকারী গুগল ড্রাইভে এক বা একাধিক আইটেম নির্বাচন করার পর অ্যাড-অন আইকনে ক্লিক করেন, অথবা অ্যাড-অনটি খোলা থাকা অবস্থায় আইটেম নির্বাচন করেন, তাহলে অ্যাড-অনটি সংশ্লিষ্ট
drive.onItemsSelectedTriggerকনটেক্সচুয়াল ফাংশনটি (যদি থাকে) কার্যকর করে। এই ফাংশনটি অ্যাড-অনটির গুগল ড্রাইভ কনটেক্সচুয়াল "নির্বাচিত আইটেম" ইন্টারফেসটি তৈরি করে এবং প্রদর্শনের জন্য তা গুগল ড্রাইভে ফেরত পাঠায়।
অ্যাড-অন ড্রাইভ ইন্টারফেস তৈরি করা
এই সাধারণ ধাপগুলো অনুসরণ করে আপনি গুগল ড্রাইভের কার্যকারিতা বর্ধনকারী ইন্টারফেস তৈরি করতে পারেন:
- আপনার অ্যাড-অনের জন্য একটি ড্রাইভ-নির্দিষ্ট হোমপেজ থাকবে কিনা, তা স্থির করুন। এছাড়াও, ব্যবহারকারী যখন ড্রাইভ আইটেম নির্বাচন করবেন, তখন তার জন্য একটি প্রাসঙ্গিক ইন্টারফেস প্রদান করতে চান কিনা, সে বিষয়েও সিদ্ধান্ত নিন।
- অ্যাড-অন স্ক্রিপ্ট প্রজেক্ট ম্যানিফেস্টে উপযুক্ত
addOns.commonএবংaddOns.driveফিল্ডগুলো যোগ করুন, যার মধ্যে প্রয়োজনীয় যেকোনো Drive স্কোপও অন্তর্ভুক্ত থাকবে। - আপনি যদি ড্রাইভ-এর জন্য নির্দিষ্ট কোনো হোমপেজ প্রদান করেন, তাহলে এই ইন্টারফেসটি তৈরি করতে
drive.homepageTriggerফাংশনটি প্রয়োগ করুন। এছাড়াও, একাধিক গুগল ওয়ার্কস্পেস হোস্টের জন্য আপনিcommon.homepageTriggerইন্টারফেসটি ব্যবহার করতে পারেন। - আপনি যদি একটি ড্রাইভ কনটেক্সচুয়াল আইটেম সিলেকশন ইন্টারফেস প্রদান করেন, তবে এই ইন্টারফেসটি তৈরি করার জন্য আপনাকে অবশ্যই একটি
drive.onItemsSelectedTriggerকনটেক্সচুয়াল ট্রিগার ফাংশন ইমপ্লিমেন্ট করতে হবে। বিস্তারিত জানার জন্য “ নির্বাচিত আইটেমগুলির জন্য ড্রাইভ কনটেক্সচুয়াল ইন্টারফেস ” দেখুন। - ব্যবহারকারীর UI ইন্টারঅ্যাকশন, যেমন বাটনে ক্লিক, এর প্রতিক্রিয়া জানাতে প্রয়োজনীয় সংশ্লিষ্ট কলব্যাক ফাংশনগুলো বাস্তবায়ন করুন।
ড্রাইভ হোমপেজ
গুগল ড্রাইভ, গুগল ওয়ার্কস্পেস অ্যাড-অনের হোমপেজ প্রদর্শনে সহায়তা করে। গুগল ড্রাইভে আপনার অ্যাড-অনের সাধারণ হোমপেজটি দেখানোর জন্য, কেবল নিশ্চিত করুন যে অ্যাড-অনটির ম্যানিফেস্টে একটি addOns.drive ফিল্ড রয়েছে।
বিকল্পভাবে, ড্রাইভ-এর জন্য একটি নির্দিষ্ট হোমপেজ প্রদান করতে অ্যাড-অন ম্যানিফেস্টে একটি drive.homepageTrigger যোগ করুন।
উভয় ক্ষেত্রেই, আপনাকে আপনার অ্যাড-অনের স্ক্রিপ্ট প্রজেক্টে একটি হোমপেজ ট্রিগার ফাংশনের নাম অবশ্যই প্রদান করতে হবে। প্রয়োজনের সময় ড্রাইভ হোমপেজ তৈরি করার জন্য এই ফাংশনটি স্বয়ংক্রিয়ভাবে কল করা হয়। হোমপেজ গঠনকারী একটি একক Card অথবা Card অবজেক্টের একটি অ্যারে তৈরি ও রিটার্ন করার জন্য আপনাকে অবশ্যই এই ফাংশনটি ইমপ্লিমেন্ট করতে হবে। হোমপেজ ট্রিগার ফাংশনটিতে প্যারামিটার হিসেবে একটি ইভেন্ট অবজেক্ট পাস করা হয়, যাতে ক্লায়েন্টের প্ল্যাটফর্মের মতো কিছু সাধারণ তথ্য থাকে। হোমপেজের গঠনকে নিজের মতো করে সাজাতে আপনি ইভেন্ট অবজেক্টের ডেটা ব্যবহার করতে পারেন।
নির্বাচিত আইটেমগুলির জন্য প্রাসঙ্গিক ইন্টারফেস চালান।
ব্যবহারকারী যখন এক বা একাধিক গুগল ড্রাইভ আইটেম নির্বাচন করেন, তখন কোন ইন্টারফেস (যদি থাকে) প্রদর্শন করা হবে তা নির্ধারণ করতে গুগল ড্রাইভ একটি কনটেক্সচুয়াল ট্রিগারের উপর নির্ভর করে। যখন ট্রিগারটি সক্রিয় হয়, তখন এটি অ্যাড-অন ম্যানিফেস্টে থাকা drive.onItemsSelectedTrigger.runFunction ফিল্ড দ্বারা নির্দিষ্ট কনটেক্সচুয়াল ট্রিগার ফাংশনটি কার্যকর করে।
ড্রাইভের জন্য একটি প্রাসঙ্গিক আইটেম নির্বাচন ইন্টারফেস তৈরি করতে, আপনাকে নিম্নলিখিত কাজগুলো করতে হবে:
নিশ্চিত করুন যে অ্যাড-অনটির ম্যানিফেস্টে
https://www.googleapis.com/auth/drive.addons.metadata.readonlyস্কোপটি অন্তর্ভুক্ত আছে।নিশ্চিত করুন যে ম্যানিফেস্টে একটি
drive.onItemsSelectedTriggerসেকশন অন্তর্ভুক্ত আছে।drive.onItemsSelectedTriggerফিল্ডে উল্লেখিত ফাংশনটি ইমপ্লিমেন্ট করুন। এই ফাংশনটি আর্গুমেন্ট হিসেবে একটি ইভেন্ট অবজেক্ট গ্রহণ করে এবং অবশ্যই একটি এককCardঅবজেক্ট অথবাCardঅবজেক্টের একটি অ্যারে রিটার্ন করবে।যেকোনো কার্ডের মতোই, ইন্টারফেসের জন্য উইজেটের ইন্টারঅ্যাক্টিভিটি প্রদান করতে ব্যবহৃত যেকোনো কলব্যাক ফাংশন আপনাকে অবশ্যই ইমপ্লিমেন্ট করতে হবে। উদাহরণস্বরূপ, যদি আপনি ইন্টারফেসে একটি বাটন অন্তর্ভুক্ত করেন, তবে এর সাথে একটি অ্যাকশন এবং একটি ইমপ্লিমেন্টেড কলব্যাক ফাংশন সংযুক্ত থাকা উচিত, যা বাটনটি ক্লিক করা হলে রান করবে।
ইভেন্ট অবজেক্ট
যখন drive.homepageTrigger বা drive.onItemsSelectedTrigger ট্রিগার ফাংশনগুলো কল করা হয়, তখন একটি ইভেন্ট অবজেক্ট তৈরি করে সেটিতে পাস করা হয়। ট্রিগার ফাংশনটি এই ইভেন্ট অবজেক্টের তথ্য ব্যবহার করে অ্যাড-অন কার্ডগুলো কীভাবে তৈরি করা হবে তা নির্ধারণ করতে পারে অথবা অন্যভাবে অ্যাড-অনের আচরণ নিয়ন্ত্রণ করতে পারে।
ইভেন্ট অবজেক্টের সম্পূর্ণ কাঠামো " ইভেন্ট অবজেক্টস " অংশে বর্ণনা করা হয়েছে। যখন ড্রাইভ অ্যাড-অনটির সক্রিয় হোস্ট অ্যাপ হিসেবে কাজ করে, তখন প্রাসঙ্গিক ইভেন্ট অবজেক্টগুলোতে 'ড্রাইভ ইভেন্ট অবজেক্ট' ফিল্ডটি অন্তর্ভুক্ত থাকে, যা ড্রাইভ-নির্দিষ্ট ক্লায়েন্ট তথ্য বহন করে।
আইটেম সিলেকশন ট্রিগারের জন্য কনটেক্সচুয়াল ড্রাইভ ইভেন্ট অবজেক্টগুলোতে সেইসব আইটেম সম্পর্কিত তথ্য অন্তর্ভুক্ত থাকে, যা ট্রিগারটি চালু হওয়ার সময় ব্যবহারকারী নির্বাচন করেছেন। যখন কোনো ব্যবহারকারী ড্রাইভে একাধিক আইটেম নির্বাচন করেন, তখন সেগুলোর মধ্যে একটিকে প্রধান বিবেচ্য বিষয় হিসেবে গণ্য করা হয়; এই আইটেমটিকে অ্যাক্টিভ কার্সার আইটেম বলা হয়।
নিম্নলিখিত উদাহরণটি একটি Drive ইভেন্ট অবজেক্ট দেখায় যা drive.onItemsSelectedTrigger ফাংশনে পাস করা হয়:
{
"commonEventObject": { ... },
"drive": {
"activeCursorItem":{
"addonHasFileScopePermission": true,
"id":"0B_sX1fXRRU6Ac3RhcnRlcl9maWxl",
"iconUrl": "https://drive-thirdparty.googleusercontent.com...",
"mimeType":"application/pdf",
"title":"How to get started with Drive"
},
"selectedItems": [
{
"addonHasFileScopePermission": true,
"id":"0B_sX1fXRRU6Ac3RhcnRlcl9maWxl",
"iconUrl":"https://drive-thirdparty.googleusercontent.com...",
"mimeType":"application/pdf",
"title":"How to get started with Drive"
},
...
]
},
...
}