ভূমিকা

গুগল স্লাইডস এপিআই আপনাকে গুগল স্লাইডস প্রেজেন্টেশন তৈরি ও পরিবর্তন করার সুযোগ দেয়।

অ্যাপগুলো ব্যবহারকারী ও সিস্টেম-প্রদত্ত ডেটা থেকে স্বয়ংক্রিয়ভাবে সুন্দর স্লাইড ডেক তৈরি করতে গুগল স্লাইডস এপিআই (Google Slides API)-এর সাথে ইন্টিগ্রেট করতে পারে। উদাহরণস্বরূপ, আপনি একটি ডাটাবেস থেকে গ্রাহকের বিবরণ ব্যবহার করে এবং সেগুলোকে পূর্ব-পরিকল্পিত টেমপ্লেট ও ​​নির্বাচিত কনফিগারেশন অপশনের সাথে একত্রিত করে, ম্যানুয়ালি তৈরি করার তুলনায় অনেক কম সময়ে সম্পূর্ণ প্রেজেন্টেশন তৈরি করতে পারেন।

এপিআই-এর সংক্ষিপ্ত বিবরণ

প্রেজেন্টেশন সংগ্রহে এমন পদ্ধতি রয়েছে যা আপনাকে প্রেজেন্টেশনের ভেতরের উপাদানগুলো পেতে এবং আপডেট করতে দেয়।

স্লাইডস এপিআই নিয়ে আপনার বেশিরভাগ কাজই সম্ভবত প্রেজেন্টেশন তৈরি এবং আপডেট করা হবে। আপনি batchUpdate মেথড ব্যবহার করে এটি করবেন; এই মেথডটি Request অবজেক্টের একটি তালিকা গ্রহণ করে, যা আপনাকে নিম্নলিখিত কাজগুলো করতে দেয়:

  • স্লাইড তৈরি করুন
  • স্লাইডে আকার বা টেবিলের মতো উপাদান যোগ করুন
  • টেক্সট যোগ করুন, পরিবর্তন করুন এবং মুছে ফেলুন
  • উপাদানগুলিতে রূপান্তর প্রয়োগ করুন
  • স্লাইডগুলোর ক্রম পরিবর্তন করুন

আরও বিস্তারিত জানতে ব্যাচ আপডেট দেখুন। এপিআই কীভাবে ব্যবহার করতে হয় তার একটি সহজ ও সম্পূর্ণ উদাহরণের জন্য গেট স্টার্টেড গাইডগুলো দেখুন।

উপস্থাপনার কাঠামো

স্লাইডস এপিআই-এর একটি প্রেজেন্টেশন বিভিন্ন পেজ দিয়ে গঠিত হয়, যেগুলোর মধ্যে পেজ এলিমেন্ট থাকে।

একটি প্রেজেন্টেশনের আইডি URL থেকে পাওয়া যেতে পারে:

https://docs.google.com/presentation/d/presentationId/edit

প্রেজেন্টেশন আইডি হলো অক্ষর, সংখ্যা এবং কিছু বিশেষ অক্ষর সম্বলিত একটি স্ট্রিং। একটি গুগল শিটস ইউআরএল থেকে প্রেজেন্টেশন আইডি বের করার জন্য নিম্নলিখিত রেগুলার এক্সপ্রেশনটি ব্যবহার করা যেতে পারে:

/presentation/d/([a-zA-Z0-9-_]+)

আপনি যদি ড্রাইভ এপিআই (Drive API)-এর সাথে পরিচিত হন, তাহলে presentationId টি ফাইল রিসোর্সের আইডি-কে নির্দেশ করে।

পেজ এবং পেজের উপাদানগুলো অবজেক্ট আইডি দ্বারা চিহ্নিত করা হয়।

পৃষ্ঠাগুলি

গুগল স্লাইডসে নিম্নলিখিত ধরণের পৃষ্ঠাগুলি রয়েছে:

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

পৃষ্ঠার উপাদানসমূহ

পেজ এলিমেন্ট হলো সেইসব ভিজ্যুয়াল উপাদান যা পেজে স্থাপন করা হয়। এপিআই বিভিন্ন ধরনের পেজ এলিমেন্ট প্রদান করে:

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

ব্যাচ আপডেট

batchUpdate মেথডটি আপনাকে একটি প্রেজেন্টেশনের বিভিন্ন দিক আপডেট করার সুযোগ দেয়। পরিবর্তনগুলো একসাথে একটি ব্যাচে গ্রুপ করা হয়, যাতে কোনো একটি রিকোয়েস্ট ব্যর্থ হলেও অন্য কোনো (সম্ভাব্য নির্ভরশীল) পরিবর্তন লেখা না হয়।

batchUpdate মেথডটি এক বা একাধিক Request অবজেক্ট গ্রহণ করে কাজ করে, যার প্রতিটি সম্পাদন করার জন্য একটি নির্দিষ্ট ধরনের অনুরোধ উল্লেখ করে। বিভিন্ন ধরনের অনুরোধ রয়েছে। নিচে অনুরোধের প্রকারভেদগুলোকে বিভিন্ন শ্রেণীতে ভাগ করে একটি বিশদ বিবরণ দেওয়া হলো।

স্লাইড নিয়ে কাজ করা: স্লাইড অনুরোধ তৈরি করুন
স্লাইডের অবস্থান আপডেট করার অনুরোধ
ডুপ্লিকেটঅবজেক্টরিকোয়েস্ট
পৃষ্ঠার বৈশিষ্ট্য আপডেট করার অনুরোধ
ডিলিটঅবজেক্টরিকোয়েস্ট
পেজ এলিমেন্ট নিয়ে কাজ করা: CreateShapeRequest
CreateLineRequest
UpdatePageElementTransformRequest
UpdateShapePropertiesRequest
ডুপ্লিকেটঅবজেক্টরিকোয়েস্ট
ডিলিটঅবজেক্টরিকোয়েস্ট
টেবিল নিয়ে কাজ করা: CreateTableRequest
টেবিল সারি সন্নিবেশ করার অনুরোধ
টেবিলের কলাম সন্নিবেশ করার অনুরোধ
টেবিল সারি মুছুন অনুরোধ
টেবিলের কলাম মুছে ফেলার অনুরোধ
UpdateTableRowPropertiesRequest
UpdateTableColumnPropertiesRequest
UpdateTableBorderPropertiesRequest
UpdateTableCellPropertiesRequest
MergeTableCellsRequest
UnmergeTableCellsRequest
ডিলিটঅবজেক্টরিকোয়েস্ট
চার্ট নিয়ে কাজ করা: CreateSheetsChartRequest
রিফ্রেশশিটসচার্টঅনুরোধ
সমস্ত আকারকে শীট দিয়ে প্রতিস্থাপন করার অনুরোধ
ডিলিটঅবজেক্টরিকোয়েস্ট
ছবি এবং ভিডিও নিয়ে কাজ করা: CreateImageRequest
ভিডিও অনুরোধ তৈরি করুন
UpdateImagePropertiesRequest
ভিডিও বৈশিষ্ট্য আপডেট করার অনুরোধ
সমস্ত আকারকে ছবি দিয়ে প্রতিস্থাপন করার অনুরোধ
ডুপ্লিকেটঅবজেক্টরিকোয়েস্ট
ডিলিটঅবজেক্টরিকোয়েস্ট
টেক্সট নিয়ে কাজ করা: টেক্সট অনুরোধ সন্নিবেশ করুন
ডিলিটটেক্সটরিকোয়েস্ট
সমস্ত টেক্সট প্রতিস্থাপন করার অনুরোধ
CreateParagraphBulletsRequest
অনুচ্ছেদ বুলেট মুছুন অনুরোধ
আপডেটটেক্সটস্টাইলঅনুরোধ
অনুচ্ছেদ শৈলী আপডেট করার অনুরোধ

batchUpdate মেথডটি একটি রেসপন্স বডি রিটার্ন করে, যাতে প্রতিটি রিকোয়েস্টের জন্য একটি করে রেসপন্স থাকে। প্রতিটি রেসপন্স সংশ্লিষ্ট রিকোয়েস্টের ইন্ডেক্সেই অবস্থান করে; যেসব রিকোয়েস্টের কোনো প্রযোজ্য রেসপন্স নেই, সেগুলোর ক্ষেত্রে ওই ইন্ডেক্সের রেসপন্সটি খালি থাকবে। বিভিন্ন Create রিকোয়েস্টগুলোতে সাধারণত রেসপন্স থাকে, যার ফলে আপনি নতুন যোগ করা অবজেক্টটির আইডি জানতে পারেন।

অবজেক্ট আইডি নিয়ে কাজ করা

স্লাইডস এপিআই-তে একটি প্রেজেন্টেশন পেজ এবং পেজ এলিমেন্ট দিয়ে গঠিত হয়। এই অবজেক্টগুলোতে একটি অবজেক্ট আইডি স্ট্রিং থাকে যা একটি প্রেজেন্টেশনের মধ্যে অনন্য।

তৈরির সময় অবজেক্ট আইডি নির্দিষ্ট করা

batchUpdate মেথড ব্যবহার করে পেজ বা পেজ এলিমেন্ট তৈরি করার সময়, আপনি ঐচ্ছিকভাবে নতুন অবজেক্টটির জন্য একটি অবজেক্ট আইডি নির্দিষ্ট করতে পারেন। এর ফলে আপনি একই batchUpdate রিকোয়েস্টের মধ্যে একটি অবজেক্ট তৈরি এবং পরিবর্তন করতে পারেন, যা Slides API-তে কলের সংখ্যা কমিয়ে আনে এবং খরচ হ্রাস করে।
কোটা ব্যবহার

বেশিরভাগ ক্ষেত্রে আমরা একটি র‍্যান্ডম অবজেক্ট আইডি তৈরি করার পরামর্শ দিই। উদাহরণস্বরূপ, আপনি যদি জাভা ব্যবহার করেন, তাহলে java.util.UUID.randomUUID().toString() ভালোভাবে কাজ করবে।

যখন আপনার অ্যাপ্লিকেশন দীর্ঘ সময়ের জন্য অবজেক্টগুলির হিসাব রাখতে চায়, তখন অবজেক্ট আইডির উপর নির্ভর করবেন না, কারণ এটি পরিবর্তিত হতে পারে। আরও বিস্তারিত জানতে নিম্নলিখিত বিভাগটি দেখুন।

অবজেক্ট আইডি ব্যবহার না করে অবজেক্টগুলোর হিসাব রাখা

আপনি যখন স্লাইডস এপিআই (Slides API) অনুরোধ করেন, তখন অবজেক্ট আইডি সাধারণত সংরক্ষিত থাকে। (কোনো ব্যতিক্রম ঘটলে তা মেথডটির রেফারেন্স ডকুমেন্টেশনে উল্লেখ করা থাকে।) ড্রাইভ এপিআই (Drive API) ব্যবহার করে সম্পূর্ণ প্রেজেন্টেশনের একটি কপি তৈরি করলেও অবজেক্ট আইডি সংরক্ষিত থাকে।

তবে, স্লাইডস UI-তে কোনো প্রেজেন্টেশন পরিবর্তন করার পর অবজেক্ট আইডি অপরিবর্তিত থাকবে, এমনটা ধরে নেওয়া যায় না। উদাহরণস্বরূপ, যদি কেউ স্লাইডস UI ব্যবহার করে একটি পেজ এলিমেন্ট কপি-পেস্ট করে এবং তারপর মূল ফাইলটি মুছে ফেলে, তাহলে পেজ এলিমেন্টটির একটি নতুন ইউনিক আইডি তৈরি হবে এবং আপনি পূর্বে API-এর মাধ্যমে যে আইডিটি দিয়েছিলেন তা হারিয়ে যাবে। ফলস্বরূপ, আমরা আপনার অ্যাপ্লিকেশনের স্টোরেজে অবজেক্ট আইডি সংরক্ষণ করার পরামর্শ দিই না। এর পরিবর্তে, প্রেজেন্টেশনের টেক্সট কন্টেন্ট বা অল্ট-টেক্সট ব্যবহার করে অবজেক্টগুলো খুঁজে বের করা উচিত।

নতুন তৈরি করা প্রেজেন্টেশনগুলিতে সাধারণত ডিফল্ট স্লাইড, মাস্টার এবং টেক্সট বক্সের জন্য একটি নির্দিষ্ট আইডি সেট ব্যবহার করা হয়। সময়ের সাথে সাথে এই আইডিগুলো পরিবর্তিত হতে পারে, তাই আমরা এই বৈশিষ্ট্যের উপর নির্ভর করার পরামর্শ দিই না। এর পরিবর্তে, create() বা get() কল থেকে প্রাপ্ত প্রেজেন্টেশন অবজেক্টটি ব্যবহার করে আপনি যে উপাদানগুলো পরিবর্তন করতে চান, সেগুলো খুঁজে বের করুন।