محدوده مجوز مورد نیاز
فهرست کردن محتوای ایجاد شده توسط برنامه به محدوده photoslibrary.readonly.appcreateddata
نیاز دارد. برای اطلاعات بیشتر در مورد دامنه ها، به محدوده مجوز مراجعه کنید.
نمای کلی
کتابخانه API به شما امکان می دهد موارد رسانه ای را که برنامه شما ایجاد کرده است فهرست کنید و به آنها دسترسی پیدا کنید.
برخی از ویژگیهای کلیدی فهرستبندی آیتمهای رسانه شامل موارد زیر است:
- موارد رسانه ای را از آلبوم های خاص ایجاد شده توسط برنامه یا کل کتابخانه ایجاد شده توسط برنامه فهرست کنید
فیلترها (تاریخ، دسته بندی محتوا، نوع رسانه) را هنگام فهرست بندی اعمال کنید تا نتایج خود را محدود کنید
اشیاء
mediaItem
را با جزئیات ضروری مانند پیوندهای مستقیم و ابرداده بازیابی کنید.
فهرست کردن محتویات کتابخانه و آلبوم، فهرستی از موارد رسانه را برمیگرداند. غنیسازیهایی که بخشی از آلبوم هستند شامل نمیشوند. موارد رسانه یک عکس، ویدیو یا رسانه دیگر را توصیف می کنند. mediaItem
شامل پیوند مستقیم به مورد، پیوند به مورد در Google Photos و سایر متادیتاهای مرتبط است. برای اطلاعات بیشتر، دسترسی به موارد رسانه و mediaItems
را ببینید.
آلبوم های ایجاد شده توسط برنامه را فهرست کنید
می توانید آلبوم هایی را که توسط برنامه شما ایجاد شده اند با استفاده از albums.list
فهرست کنید.
استراحت
در اینجا یک نمونه درخواست وجود دارد:
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" }
هر آلبوم برگشتی دارای شناسه ای است که می تواند برای بازیابی محتویات آلبوم همانطور که در فهرست محتوای آلبوم نشان داده شده است استفاده شود. همچنین شامل عنوان و تعداد آیتم های رسانه ای است که در آن وجود دارد.
productUrl
به آلبومی در Google Photos اشاره می کند که می تواند توسط کاربر باز شود.
coverPhotoMediaItemId
حاوی شناسه مورد رسانه ای است که نشان دهنده عکس روی جلد این آلبوم است. برای دسترسی به این تصویر جلد، از coverPhotoBaseUrl
استفاده کنید. شما نباید از coverPhotoBaseUrl
مستقیماً بدون تعیین پارامترهای اضافی استفاده کنید.
پاسخ همچنین حاوی nextPageToken
است. برای اطلاعات بیشتر، صفحه بندی را ببینید.
پاسخ برای آلبوم های خالی از این نظر متفاوت است، mediaItemsCount
و coverPhotoMediaItemId
به طور پیش فرض روی 0 تنظیم شده اند و از پاسخ REST حذف می شوند. همچنین توجه داشته باشید که coverPhotoBaseUrl
به یک تصویر متغیر پیش فرض اشاره می کند.
فهرست محتوای کتابخانه ایجاد شده توسط برنامه
میتوانید همه موارد رسانهای را از کتابخانه Google Photos کاربر که توسط برنامه شما ایجاد شدهاند فهرست کنید. این موارد بایگانیشده و حذفشده را شامل نمیشود. با اعمال فیلترها، میتوانید موارد رسانه را بر اساس محتوا، تاریخ و سایر ویژگیهای آنها فهرست کنید.
برای فهرست کردن آیتمهای رسانه، با mediaItems.list
تماس بگیرید.
استراحت
در اینجا یک نمونه درخواست وجود دارد:
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
برگردانده می شود. برای جزئیات بیشتر در مورد رسیدگی به خطا، نکات عملکرد و بهترین شیوه ها را ببینید.
استراحت
در اینجا یک نمونه درخواست وجود دارد:
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
، اندازه صفحه پیشفرض 25 مورد است. ما این اندازه صفحه را توصیه می کنیم زیرا تعادلی بین اندازه پاسخ و نرخ پر شدن ایجاد می کند. حداکثر اندازه صفحه برای جستجوی آیتم های رسانه ای و درخواست های فهرست 100 مورد است.
اندازه صفحه پیشفرض و توصیهشده هنگام فهرست کردن آلبومها 20 آلبوم و حداکثر 50 آلبوم است.
وقتی تعداد نتایج موجود بیشتر از اندازه صفحه باشد، پاسخ شامل nextPageToken
است که به برنامه شما نشان می دهد که نتایج بیشتری از سرور باید واکشی شود.
مثال
همانطور که در مثال زیر نشان داده شده است، باید nextPageToken
به درخواست های بعدی در پارامتر pageToken
اضافه کنید. pageToken
به همراه سایر پارامترهای مورد نیاز برای عملیات، یا در متن درخواست یا به عنوان پارامتر query مشخص کنید.
درخواست شماره 1
{ "pageSize": "5", "filters": { … } }
پاسخ شماره 1
{ "mediaItem": [ … ], "nextPageToken": "next-page-token" }
درخواست شماره 2
{ "pageSize": "5", "filters": { … }, "pageToken": "page-token" }
پاسخ شماره 2
{ "mediaItem": [ … ], "nextPageToken": "next-page-token" }
این الگو را تا زمانی ادامه دهید که دیگر شی nextPageToken
وجود نداشته باشد.
nextPageToken
فقط برای همان درخواست معتبر است. اگر هر یک از پارامترها تغییر کند، از nextPageToken
قبلاً استفاده شده نباید در همان درخواست استفاده شود.