প্রয়োজনীয় অনুমোদনের স্কোপ
অ্যাপ-তৈরি করা কন্টেন্ট তালিকাভুক্ত করার জন্য photoslibrary.readonly.appcreateddata
স্কোপ প্রয়োজন। স্কোপ সম্পর্কে আরও তথ্যের জন্য, অনুমোদন
স্কোপ দেখুন।
এক নজরে
লাইব্রেরি API আপনাকে সেইসব মিডিয়া আইটেমের তালিকা তৈরি করতে ও অ্যাক্সেস করতে দেয় যেগুলি আপনার অ্যাপ্লিকেশন তৈরি করেছে।
লিস্টিং মিডিয়া আইটেমের কিছু মূল ফিচারের মধ্যে নিম্নলিখিত বিষয়গুলি পড়ে:
- নির্দিষ্ট অ্যাপ-তৈরি করা অ্যালবাম বা সম্পূর্ণ অ্যাপ-তৈরি করা লাইব্রেরি থেকে মিডিয়া আইটেম তালিকাভুক্ত করা
আপনার ফলাফল আরও সুনির্দিষ্ট করতে, তালিকাভুক্ত করার সময় ফিল্টার (তারিখ, কন্টেন্টের বিভাগ, মিডিয়ার ধরন) প্রয়োগ করুন
সরাসরি লিঙ্ক ও মেটাডেটার মতো প্রয়োজনীয় বিবরণ সহ
mediaItemঅবজেক্ট রিট্রিভ করুন।
লাইব্রেরি ও অ্যালবামের কন্টেন্ট তালিকাভুক্ত করলে মিডিয়া আইটেমের একটি তালিকা রিটার্ন করে।
অ্যালবামের অংশ
হিসেবে এনরিচমেন্ট অন্তর্ভুক্ত করা হয় না। মিডিয়া আইটেম কোনও ফটো, ভিডিও বা অন্যান্য মিডিয়া সম্পর্কে বর্ণনা দেয়। ক
mediaItem আইটেমের সরাসরি লিঙ্ক, Google Photos-এ আইটেমের লিঙ্ক এবং
অন্যান্য প্রাসঙ্গিক মেটাডেটা অন্তর্ভুক্ত করে। আরও তথ্যের জন্য, মিডিয়া আইটেম অ্যাক্সেস করা এবং
mediaItems দেখুন।
অ্যাপ-তৈরি করা অ্যালবামের তালিকা
আপনার অ্যাপের তৈরি করা অ্যালবামগুলি
albums.list ব্যবহার করে তালিকাভুক্ত করতে পারবেন।
REST
এখানে অনুরোধের একটি নমুনা দেওয়া হল:
GET https://photoslibrary.googleapis.com/v1/albums
অনুরোধের উত্তরে নিম্নলিখিত ফলাফল পাওয়া যায়:
{
"albums": [
{
"id": "album-id",
"title": "album-title",
"productUrl": "album-product-url",
"coverPhotoBaseUrl": "album-cover-base-url_do-not-use-directly",
"coverPhotoMediaItemId": "album-cover-media-item-id",
"isWriteable": "whether-you-can-write-to-this-album",
"mediaItemsCount": "number-of-media-items-in-album"
},
...
],
"nextPageToken": "token-for-pagination"
}প্রতিটি রিটার্ন করা অ্যালবামের একটি ID থাকে যা অ্যালবামের কন্টেন্ট তালিকাভুক্ত করুন-এ দেখানো হয়েছে। এটি ব্যবহার করে অ্যালবামের কন্টেন্ট রিট্রিভ করা যায়। এছাড়াও, এতে শীর্ষক ও মিডিয়া আইটেমের সংখ্যা অন্তর্ভুক্ত থাকে।
productUrl Google Photos-এ থাকা সেই অ্যালবামকে পয়েন্ট করে যা ব্যবহারকারী
খুলতে পারেন।
coverPhotoMediaItemId-এ মিডিয়া আইটেম
আইডি আছে যা এই অ্যালবামের কভার
ফটোকে উপস্থাপন করে। এই কভার ইমেজ অ্যাক্সেস করতে, coverPhotoBaseUrl ব্যবহার করুন।
অতিরিক্ত প্যারামিটার উল্লেখ না করে সরাসরি coverPhotoBaseUrl ব্যবহার করা উচিত নয়।
উত্তরে একটি nextPageTokenও রয়েছে। আরও তথ্যের জন্য, পৃষ্ঠা নম্বর দেখুন।
খালি অ্যালবামের ক্ষেত্রে উত্তর আলাদা হয়, mediaItemsCount এবং
coverPhotoMediaItemId ডিফল্ট হিসেবে ০ সেট করা থাকে এবং REST
উত্তর থেকে বাদ দেওয়া হয়। এছাড়াও, মনে রাখবেন যে coverPhotoBaseUrl একটি ডিফল্ট প্লেসহোল্ডার
ইমেজের দিকে পয়েন্ট করে।
অ্যাপ-তৈরি করা লাইব্রেরি কন্টেন্টের তালিকা তৈরি করা
আপনার অ্যাপের মাধ্যমে তৈরি করা ব্যবহারকারীর Google Photos লাইব্রেরির সব মিডিয়া আইটেম আপনি তালিকাভুক্ত করতে পারবেন। এর মধ্যে আর্কাইভ করা ও মুছে দেওয়া আইটেম অন্তর্ভুক্ত নয়। আপনি ফিল্টার প্রয়োগ করে মিডিয়া আইটেমগুলিকে সেগুলির কন্টেন্ট, তারিখ ও অন্যান্য প্রপার্টির ভিত্তিতে তালিকাভুক্ত করতে পারবেন।
মিডিয়া আইটেম তালিকাভুক্ত করতে, mediaItems.list কল করুন।
REST
এখানে অনুরোধের একটি নমুনা দেওয়া হল:
GET https://photoslibrary.googleapis.com/v1/mediaItems
Content-type: application/json
Authorization: Bearer oauth2-token
{
"pageSize": "100",
}GET অনুরোধের উত্তরে নিম্নলিখিত তথ্য পাওয়া যায়:
{
"mediaItems": [
...
],
"nextPageToken": "token-for-pagination"
}উত্তরে মিডিয়া আইটেমের একটি তালিকা রয়েছে, সবচেয়ে সাম্প্রতিক থেকে সবচেয়ে পুরনো হিসেবে সাজানো হয়েছে।
আরও তথ্যের জন্য, mediaItems দেখুন। এছাড়াও, এতে একটি
nextPageToken থাকে, যা
পৃষ্ঠাঙ্কন লিঙ্কে আরও বিস্তারিতভাবে বর্ণনা করা হয়েছে।
অ্যালবামের কন্টেন্ট তালিকাভুক্ত করা
কোনও অ্যালবামের সব মিডিয়া আইটেম তালিকাভুক্ত করতে, আপনার
সার্চ অনুরোধে albumId ফিল্ড যোগ করুন। albumId সম্পর্কে আরও তথ্য পেতে, অ্যালবাম
তালিকাভুক্ত করা দেখুন। albumId ভুল হলে, Bad Request সমস্যা হয়েছে বলে
জানানো হয়। আইডিটি বৈধ হলে, কিন্তু যাচাই করা
ব্যবহারকারীর জন্য অ্যালবামটি না থাকলে, একটি Not Found সমস্যা দেখানো হয়। error
হ্যান্ডেলিং সংক্রান্ত আরও বিবরণের জন্য,পারফর্ম্যান্স সংক্রান্ত পরামর্শ এবং
পেশাদার পদ্ধতি দেখুন।
REST
এখানে অনুরোধের একটি নমুনা দেওয়া হল:
POST https://photoslibrary.googleapis.com/v1/mediaItems:search
Content-type: application/json
Authorization: Bearer oauth2-token
{
"pageSize": "100",
"albumId": "album-id"
}POST অনুরোধের উত্তরে নিম্নলিখিত প্রতিক্রিয়া পাওয়া যায়:
{
"mediaItems": [
...
],
"nextPageToken": "token-for-pagination"
}উত্তরে একটি nextPageToken এবং মিডিয়া আইটেমের তালিকা রয়েছে। লাইব্রেরির কন্টেন্ট তালিকাভুক্ত করার সময়
যেমন করা হয়, তেমন নয়, মিডিয়া আইটেমগুলি
অ্যালবামে তাদের ক্রম অনুযায়ী ফেরত দেওয়া হয়। আরও বিবরণের জন্য, mediaItems এবং
পৃষ্ঠা নম্বর দেখুন। ব্যবহারকারী Google Photos ইন্টারফেসে
ক্রম পরিবর্তন করতে পারবেন।
albumId সেট করা থাকলে, অ্যালবাম কন্টেন্ট তালিকাভুক্ত করার সময় আপনি ফিল্টার প্রয়োগ করতে পারবেন না।
এর ফলে Bad Request সমস্যা হয়।
REST-এর জন্য পৃষ্ঠা নম্বর
পারফর্ম্যান্স উন্নত করতে, যেসব পদ্ধতি অনেক বেশি ফলাফল রিটার্ন করে (যেমন
তালিকা পদ্ধতি) সেগুলি হয়ত উত্তরকে পৃষ্ঠা হিসেবে ভাগ করে। pageSize প্যারামিটার প্রতিটি
পৃষ্ঠায় সর্বাধিক ফলাফলের সংখ্যা প্রদান করে।
mediaItems.search ও mediaItems.list-এ কলের জন্য, ডিফল্ট পৃষ্ঠা সাইজ হল
২৫টি আইটেম। আমরা এই সাইজের পৃষ্ঠা সাজেস্ট করি কারণ এটি উত্তরের সাইজ এবং ফিল রেটের মধ্যে
ভারসাম্য বজায় রাখে। মিডিয়া আইটেম
সার্চ ও তালিকা সংক্রান্ত অনুরোধের জন্য সর্বাধিক পৃষ্ঠা সাইজ হল ১০০টি আইটেম।
অ্যালবাম তালিকাভুক্ত করার সময় ডিফল্ট ও সাজেস্ট করা পৃষ্ঠার সাইজ হল ২০টি অ্যালবাম, যার মধ্যে সর্বাধিক ৫০টি অ্যালবাম থাকতে পারে।
উপলভ্য ফলাফলের সংখ্যা পৃষ্ঠা সাইজের থেকে বেশি হলে, উত্তরের মধ্যে একটি nextPageToken থাকে, যা আপনার অ্যাপ্লিকেশনকে ইঙ্গিত করে যে সার্ভার থেকে
আরও ফলাফল পেতে হবে।
উদাহরণ
আপনাকে অবশ্যই পরবর্তী অনুরোধে nextPageToken প্যারামিটার
pageToken যোগ করতে হবে, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে। অপারেশনের জন্য প্রয়োজনীয় অন্যান্য প্যারামিটারের সাথে pageToken একসাথে
উল্লেখ করুন, এটি অনুরোধের
বডিতে অথবা কোয়েরি প্যারামিটার হিসেবে থাকতে পারে।
অনুরোধ #১
{
"pageSize": "5",
"filters": { … }
}উত্তর #১
{
"mediaItem": [ … ],
"nextPageToken": "next-page-token"
}অনুরোধ #২
{
"pageSize": "5",
"filters": { … },
"pageToken": "page-token"
}উত্তর #২
{
"mediaItem": [ … ],
"nextPageToken": "next-page-token"
}আর কোনও nextPageToken অবজেক্ট না থাকা পর্যন্ত এই প্যাটার্ন চালিয়ে যান।
nextPageToken শুধুমাত্র একই অনুরোধের জন্য বৈধ। কোনও প্যারামিটার পরিবর্তন করা হলে, একই
অনুরোধে আগে ব্যবহার করা nextPageToken ব্যবহার করা উচিত নয়।