Zarządzanie albumami

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
}