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 co najmniej jednym albumem. Aby zacząć kojarzyć elementy multimedialne z albumem, musisz najpierw utworzyć ten album.

Wymagane zakresy autoryzacji

Tworzenie albumów wymaga uprawnienia photoslibrary.appendonly.

Zmiana tytułu lub zdjęcia na okładkę albumu po jego utworzeniu wymaga uprawnień photoslibrary.edit.appcreateddata.

Więcej informacji o zakresach znajdziesz w artykule na temat zakresów autoryzacji.

Tworzenie nowego albumu

Aby utworzyć album, zadzwoń pod numer albums.create i podaj title. Pamiętaj, że title może zawierać maksymalnie 500 znaków.

Wywołanie zwraca album. Aplikacja może przechowywać identyfikator albumu 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, odpowiedź zwróci album:

{
  "productUrl": "album-product-url",
  "id": "album-id",
  "title": "album-title",
  "isWriteable": "whether-you-can-write-to-this-album"
}

Pobierz szczegóły albumu

Aby pobrać szczegóły istniejącego albumu utworzonego przez Twoją aplikację, wywołaj funkcję albums.get i uwzględnij albumId albumu, który chcesz pobrać.

Wywołanie zwraca album.

REST

Oto nagłówek żądania GET:

GET https://photoslibrary.googleapis.com/v1/albums/{albumId}
Content-type: application/json
Authorization: Bearer oauth2-token

Treść żądania wygląda tak:

{
  "albumId": album-id
}

Jeśli operacja się powiedzie, odpowiedź zwróci album:

{
  "id": album-id,
  "title": album-title,
  "productUrl": album-product-url,
  "mediaItemsCount": media-items-count,
  "coverPhotoBaseUrl": cover-photo-base-url,
  "coverPhotoMediaItemId": cover-photo-media-item-id
}

Zmiana tytułów i zdjęć na okładkę albumu

Aby zmienić tytuł albumu lub zdjęcie na okładkę, utwórz album update call z identyfikatorem albumu i podaj w prośbie nowy tytuł lub identyfikator nowego zdjęcia na okładkę. Aby wprowadzić tę zmianę, musisz użyć zakresu autoryzacji photoslibrary.edit.appcreateddata.

Tytuł albumu może mieć maksymalnie 500 znaków. Elementy multimediów na okładkę muszą należeć do właściciela albumu i być powiązane z albumem, którego dotyczą.

REST

Oto nagłówek żądania PATCH służący do aktualizowania pól title i coverPhotomediaItemId albumu.

PATCH https://photoslibrary.googleapis.com/v1/albums/album-id?updateMask=title&updateMask=coverPhotoMediaItemId

To żądanie określa, które usługi są aktualizowane, przez uwzględnienie maski pól, wskazanej przez parametry updateMask w adresie URL. Parametr updateMask należy przekazać w przypadku każdej aktualizowanej właściwości albumu.

W przypadku każdej aktualizowanej właściwości podaj jej szczegóły w treści żądania:

{
  "title": "new-album-title",
  "coverPhotoMediaItemId": "new-cover-media-item-id"
}

Jeśli operacja się powiedzie, 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"
}

Dodawanie elementów multimedialnych do albumu

Możesz dodawać elementy multimedialne utworzone przez aplikację do albumów utworzonych przez aplikację, wywołując funkcję albums.batchAddMediaItems. Elementy multimedialne są dodawane na końcu albumu w kolejności podanej w wywołaniu.

Jeśli podany zostanie nieprawidłowy album lub nieprawidłowy element multimedialny, cała prośba zakończy się niepowodzeniem. Częściowy sukces nie jest obsługiwany.

Każdy album może zawierać maksymalnie 20 tysięcy elementów multimedialnych. Żądania dodania większej liczby elementów, która przekroczy ten limit, nie będą realizowane.

Aby dodać elementy multimedialne do albumu, wywołaj funkcję albums.batchAddMediaItems, podając identyfikatory 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ę powiedzie, odpowiedź zwróci pusty obiekt JSON i stan HTTP Sukces.

Usuwanie elementów multimedialnych z albumu

Możesz usunąć elementy multimedialne utworzone przez aplikację w albumach utworzonych przez aplikację, wywołując funkcję albums.batchRemoveMediaItems.

Jeśli podasz nieprawidłowe elementy multimedialne, cała prośba zakończy się niepowodzeniem. Częściowy sukces nie jest obsługiwany.

Aby usunąć elementy multimedialne z albumu, wywołaj funkcję albums.batchRemoveMediaItems z identyfikatorami 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ę powiedzie, odpowiedź zwróci pusty obiekt JSON i stan HTTP Sukces.

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
}