در Google Photos، میتوانید عکسها و سایر موارد رسانهای را با استفاده از آلبومها سازماندهی کنید. یک آیتم رسانه ای را می توان با یک یا چند آلبوم مرتبط کرد. برای شروع مرتبط کردن آیتم های رسانه ای با آلبوم، ابتدا باید آلبوم را ایجاد کنید.
محدوده مجوز مورد نیاز
برای ایجاد یک آلبوم، برنامه شما باید حداقل یکی از حوزه های مجوز زیر را درخواست کند:
-
photoslibrary.appendonly
-
photoslibrary.sharing
برای تغییر عنوان یا عکس روی جلد آلبومها پس از ایجاد، از محدوده photoslibrary.edit.appcreateddata
استفاده کنید.
ایجاد یک آلبوم جدید
برای ایجاد یک آلبوم، با albums.create
تماس بگیرید و title
اضافه کنید. توجه داشته باشید که title
به 500 کاراکتر محدود شده است.
تماس یک آلبوم را برمی گرداند. برنامه شما میتواند شناسه آلبوم را از این اطلاعات ذخیره کند و از آن برای آپلود موارد رسانه در آلبوم خاص استفاده کند.
استراحت
در اینجا یک هدر برای درخواست POST آمده است:
POST https://photoslibrary.googleapis.com/v1/albums Content-type: application/json Authorization: Bearer oauth2-token
بدنه درخواست به شکل زیر است:
{ "album": { "title": "new-album-title" } }
در صورت موفقیت آمیز بودن، پاسخ یک آلبوم را برمی گرداند:
{ "productUrl": "album-product-url", "id": "album-id", "title": "album-title", "isWriteable": "whether-you-can-write-to-this-album" }
جاوا
try { Album createdAlbum = photosLibraryClient.createAlbum("My Album"); // The createdAlbum object contains properties of an album String productUrl = createdAlbum.getProductUrl(); // coverPhotoBaseUrl shouldn't be used as is. Append parameters to base URLs before use String albumCoverImage = createdAlbum.getCoverPhotoBaseUrl() + "=w2048-h1024"; boolean isWriteable = createdAlbum.getIsWriteable(); } catch (ApiException e) { // Handle error }
PHP
try { $newAlbum = PhotosLibraryResourceFactory::album("My Album"); $createdAlbum = $photosLibraryClient->createAlbum($newAlbum); // The createdAlbum object contains properties of an album $albumId = $createdAlbum->getId(); $productUrl = $createdAlbum->getProductUrl(); // coverPhotoBaseUrl shouldn't be used as is. Append parameters to base URLs before use $albumCoverImage = $createdAlbum->getCoverPhotoBaseUrl() . '=w2048-h1024'; $isWriteable = $createdAlbum->getIsWriteable(); } catch (\Google\ApiCore\ApiException $e) { // Handle error }
تغییر عناوین آلبوم و عکس های جلد
برای تغییر عنوان آلبوم یا عکس روی جلد، یک album update call
با شناسه آلبوم برقرار کنید و عنوان جدید یا شناسه مورد رسانه عکس روی جلد جدید را در درخواست اضافه کنید. برای ایجاد تغییر، باید از محدوده مجوز photoslibrary.edit.appcreateddata
استفاده کنید.
عنوان آلبوم نمی تواند بیش از 500 کاراکتر باشد. موارد رسانه جلد باید متعلق به مالک آلبوم باشد و متعلق به آلبومی باشد که برای آن کاور خواهد بود.
استراحت
در اینجا یک هدر درخواست PATCH برای به روز رسانی title
آلبوم و coverPhotomediaItemId
وجود دارد.
PATCH https://photoslibrary.googleapis.com/v1/albums/album-id?updateMask=title&updateMask=coverPhotoMediaItemId
این درخواست مشخص می کند که چه ویژگی هایی با اضافه کردن یک فیلد ماسک به روز می شوند که با پارامترهای updateMask
در URL نشان داده شده است. پارامتر updateMask
باید برای هر ویژگی آلبومی که بهروزرسانی میشود، ارسال شود.
برای هر ملکی که بهروزرسانی میکنید، جزئیات آن را در متن درخواست درج کنید:
{ "title": "new-album-title", "coverPhotoMediaItemId": "new-cover-media-item-id" }
در صورت موفقیت آمیز بودن، پاسخ جزئیات album
به روز شده را برمی گرداند:
{ "id": "album-id", "title": "new-album-title", "productUrl": "album-product-url", "isWriteable": "true-if-user-can-write-to-this-album", "mediaItemsCount": "number-of-media-items-in-album", "coverPhotoBaseUrl": "cover-photo-base-url_use-only-with-parameters", "coverPhotoMediaItemId": "new-cover-media-item-id" }
جاوا
try { // Update the cover photo of the album given a MediaItem object. Album updatedAlbum = photosLibraryClient.updateAlbumCoverPhoto(album, newCoverMediaItem); // Alternatively, you can update the cover photo of the album given a media item ID. // The specified media item identifier must be not null or empty. // Album updatedAlbum = photosLibraryClient.updateAlbumCoverPhoto(album, "new-cover-media-item-id"); } catch (ApiException e) { // Handle error } try { // Update the title of the album. // The new title must not be null or empty. Album updatedAlbum = photosLibraryClient.updateAlbumTitle(album, "new-album-title"); } catch (ApiException e) { // Handle error }
PHP
try { // ID of the album to update. $albumId = "ALBUM_ID"; // Media item ID of the new cover photo. // Must not be null or empty. $newCoverMediaItemId = "new-cover-media-item-id"; // Update the cover photo of the album. $mediaItem = $photosLibraryClient->updateAlbumCoverPhoto($albumId, $newCoverMediaItemId); } catch (\Google\ApiCore\ApiException $e) { // Handle error } try { // ID of the album to update. $albumId = "ALBUM_ID"; // New title of the album. // Must not be null or empty. $newTitle = "new-album-title"; // Update the title of the album. $mediaItem = $photosLibraryClient->updateAlbumTitle($albumId, $newTitle); } catch (\Google\ApiCore\ApiException $e) { // Handle error }
افزودن آیتم های رسانه ای به آلبوم
میتوانید با فراخوانی albums.batchAddMediaItems
، موارد رسانه را از کتابخانه Google Photos کاربر به آلبوم اضافه کنید. آیتم های رسانه ای به ترتیبی که در این فراخوان داده شده به انتهای آلبوم اضافه می شوند.
اگر یک مورد رسانه یا آلبوم نامعتبر مشخص شود، کل درخواست ناموفق خواهد بود. موفقیت جزئی پشتیبانی نمی شود.
هر آلبوم می تواند حداکثر 20000 آیتم رسانه ای داشته باشد. درخواست برای افزودن موارد بیشتر که از این حد فراتر میرود با شکست مواجه میشوند.
توجه داشته باشید که فقط می توانید موارد رسانه ای را که توسط برنامه شما آپلود شده اند به آلبوم هایی که برنامه شما ایجاد کرده است اضافه کنید. آیتم های رسانه نیز باید در کتابخانه کاربر باشد. برای آلبومهایی که به اشتراک گذاشته میشوند، یا باید متعلق به کاربر باشند یا کاربر باید شریکی باشد که قبلاً به آلبوم ملحق شده است.
برای افزودن آیتم های رسانه ای به یک آلبوم، با شناسه آیتم های رسانه و آلبوم با albums.batchAddMediaItems
تماس بگیرید.
استراحت
در اینجا یک هدر برای درخواست POST آمده است:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchAddMediaItems Content-type: application/json Authorization: Bearer oauth2-token
بدنه درخواست به شکل زیر است:
{ "mediaItemIds": [ "media-item-id", "another-media-item-id", ... ] }
در صورت موفقیت آمیز بودن، پاسخ یک پاسخ JSON خالی و وضعیت موفقیت HTTP را برمی گرداند.
جاوا
try { // List of media item IDs to add List<String> mediaItemIds = Arrays .asList("MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID"); // ID of the album to add media items to String albumId = "ALBUM_ID"; // Add all given media items to the album photosLibraryClient.batchAddMediaItemsToAlbum(albumId, mediaItemIds); } catch (ApiException e) { // An exception is thrown if the media items could not be added }
PHP
try { // List of media item IDs to add $mediaItemIds = ["MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID"]; // ID of the album to add media items to $albumId = "ALBUM_ID"; // Add all given media items to the album $response = $photosLibraryClient->batchAddMediaItemsToAlbum($albumId, $mediaItemIds); } catch (\Google\ApiCore\ApiException $e) { // Handle Error }
حذف موارد رسانه از آلبوم
با فراخوانی albums.batchRemoveMediaItems
می توانید موارد رسانه ای را که از آلبوم اضافه کرده اید حذف کنید.
اگر موارد رسانه نامعتبر مشخص شود، کل درخواست ناموفق خواهد بود. موفقیت جزئی پشتیبانی نمی شود.
توجه داشته باشید که فقط میتوانید موارد رسانهای را حذف کنید که برنامه شما به یک آلبوم اضافه کرده یا در آلبومی به عنوان بخشی از آپلود ایجاد شدهاند . برای آلبومهایی که به اشتراک گذاشته میشوند، فقط در صورتی میتوانید موارد اضافه شده توسط سایر همکاران را حذف کنید که از طرف مالک آلبوم اقدام کنید.
برای حذف آیتم های رسانه از یک آلبوم، با شناسه های آیتم های رسانه و آلبوم با albums.batchRemoveMediaItems
تماس بگیرید.
استراحت
در اینجا یک هدر برای درخواست POST آمده است:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchRemoveMediaItems Content-type: application/json Authorization: Bearer oauth2-token
بدنه درخواست به شکل زیر است:
{ "mediaItemIds": [ "media-item-id", "another-media-item-id", ... ] }
در صورت موفقیت آمیز بودن، پاسخ یک پاسخ JSON خالی و وضعیت موفقیت HTTP را برمی گرداند.
جاوا
try { // List of media item IDs to remove List<String> mediaItemIds = Arrays .asList("MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID"); // ID of the album to remove media items from String albumId = "ALBUM_ID"; // Remove all given media items from the album photosLibraryClient.batchRemoveMediaItemsFromAlbum(albumId, mediaItemIds); } catch (ApiException e) { // An exception is thrown if the media items could not be removed }
PHP
try { // List of media item IDs to remove $mediaItemIds = ["MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID"]; // ID of the album to remove media items from $albumId = "ALBUM_ID"; // Remove all given media items from the album $response = $photosLibraryClient->batchRemoveMediaItemsFromAlbum($albumId, $mediaItemIds); } catch (\Google\ApiCore\ApiException $e) { // Handle Error }