W Zdjęciach Google możesz porządkować zdjęcia i inne elementy multimedialne za pomocą albumów. Element multimedialny może być powiązany z jednym lub większą liczbą albumów. Aby rozpocząć kojarzenie elementów multimedialnych z albumem, trzeba go najpierw utworzyć.
Wymagane zakresy autoryzacji
Aby utworzyć album, aplikacja musi zażądać co najmniej jednego z tych zakresów autoryzacji:
photoslibrary.appendonly
photoslibrary.sharing
Aby zmienić tytuł lub zdjęcie na okładkę albumów po ich utworzeniu, użyj zakresu photoslibrary.edit.appcreateddata
.
Tworzenie nowego albumu
Aby utworzyć album, wywołaj metodę albums.create
i dołącz parametr title
. Pamiętaj, że pole title
może zawierać maksymalnie 500 znaków.
Wywołanie zwraca album. Aplikacja może przechowywać identyfikator albumu pochodzący z tych informacji i używać go do przesyłania elementów multimedialnych do określonego albumu.
REST
Oto nagłówek żądania POST:
POST https://photoslibrary.googleapis.com/v1/albums Content-type: application/json Authorization: Bearer oauth2-token
Treść żądania wygląda tak:
{ "album": { "title": "new-album-title" } }
Jeśli operacja się uda, w odpowiedzi zostanie zwrócony album:
{ "productUrl": "album-product-url", "id": "album-id", "title": "album-title", "isWriteable": "whether-you-can-write-to-this-album" }
Java
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 }
Zmienianie tytułów albumów i zdjęć na okładkę
Aby zmienić tytuł albumu lub zdjęcie na okładkę, utwórz album update
call
z jego identyfikatorem i dodaj w prośbie nowy tytuł lub identyfikator elementu multimedialnego nowego zdjęcia na okładkę. Aby wprowadzić zmianę, musisz użyć zakresu autoryzacji photoslibrary.edit.appcreateddata
.
Tytuły albumów nie mogą mieć więcej niż 500 znaków. Elementy multimedialne okładek muszą należeć do właściciela albumu i należeć do albumu, dla którego będą stanowiły okładkę.
REST
Oto nagłówek żądania PATCH, który pozwala zaktualizować parametry title
i coverPhotomediaItemId
albumu.
PATCH https://photoslibrary.googleapis.com/v1/albums/album-id?updateMask=title&updateMask=coverPhotoMediaItemId
To żądanie określa, które właściwości są aktualizowane przez uwzględnienie w adresie URL maski pola wskazywanej przez parametry updateMask
. Parametr updateMask
trzeba przekazać w przypadku każdej aktualizowanej właściwości albumu.
W treści żądania podaj szczegóły każdej aktualizowanej usługi:
{ "title": "new-album-title", "coverPhotoMediaItemId": "new-cover-media-item-id" }
Jeśli operacja się uda, odpowiedź zwróci zaktualizowane szczegóły 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" }
Java
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 }
Dodawanie elementów multimedialnych do albumu
Możesz dodawać do albumu elementy multimedialne z biblioteki Zdjęć Google użytkownika, wywołując metodę albums.batchAddMediaItems
.
Elementy multimedialne są dodawane na końcu albumu w kolejności podanej w wywołaniu.
Żądanie się nie powiedzie, jeśli określisz nieprawidłowy element multimedialny lub album. Częściowy sukces nie jest obsługiwany.
Każdy album może zawierać do 20 000 elementów multimedialnych. Prośby o dodanie kolejnych elementów, które spowodowałyby przekroczenie tego limitu, będą odrzucane.
Pamiętaj, że do albumów utworzonych przez tę aplikację możesz dodawać tylko elementy multimedialne przesłane przez Twoją aplikację. Elementy multimedialne muszą też znajdować się w bibliotece użytkownika. Udostępnione albumy muszą być należące do użytkownika lub być współpracownikiem, który już dołączył do albumu.
Aby dodać elementy multimedialne do albumu, wywołaj metodę albums.batchAddMediaItems
, podając identyfikatory tych elementów multimedialnych i albumu.
REST
Oto nagłówek żądania POST:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchAddMediaItems Content-type: application/json Authorization: Bearer oauth2-token
Treść żądania wygląda tak:
{ "mediaItemIds": [ "media-item-id", "another-media-item-id", ... ] }
Jeśli operacja się uda, odpowiedź zwróci pustą odpowiedź JSON i stan sukcesu HTTP.
Java
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 }
Usuwanie elementów multimedialnych z albumu
Dodane elementy multimedialne możesz usunąć z albumu, wywołując metodę albums.batchRemoveMediaItems
.
Jeśli określisz nieprawidłowe elementy multimedialne, żądanie zakończy się niepowodzeniem. Częściowy sukces nie jest obsługiwany.
Pamiętaj, że możesz usuwać tylko elementy multimedialne dodane do albumu przez aplikację lub utworzone w albumie podczas przesyłania. W przypadku albumów, które są udostępnione, możesz usuwać elementy dodane przez innych współpracowników, tylko jeśli działasz w imieniu właściciela albumu.
Aby usunąć elementy multimedialne z albumu, wywołaj metodę albums.batchRemoveMediaItems
, podając identyfikatory tych elementów multimedialnych i albumu.
REST
Oto nagłówek żądania POST:
POST https://photoslibrary.googleapis.com/v1/albums/album-id:batchRemoveMediaItems Content-type: application/json Authorization: Bearer oauth2-token
Treść żądania wygląda tak:
{ "mediaItemIds": [ "media-item-id", "another-media-item-id", ... ] }
Jeśli operacja się uda, odpowiedź zwróci pustą odpowiedź JSON i stan sukcesu HTTP.
Java
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 }