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ąć tworzenie powiązania elementów multimedialnych z albumem, musisz go najpierw utworzyć.

Wymagane zakresy autoryzacji

Aby można było utworzyć album, aplikacja musi poprosić o co najmniej jedną z tych opcji: zakresów autoryzacji:

  • photoslibrary.appendonly
  • photoslibrary.sharing

Aby zmienić tytuł lub zdjęcie na okładkę albumów po ich utworzeniu, użyj Zakres: photoslibrary.edit.appcreateddata.

Tworzenie nowego albumu

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

Wywołanie zwraca album. Aplikacja może zapisz identyfikator albumu z tych informacji i użyj go przesyłanie elementów multimedialnych do konkretnego 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 błąd 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 identyfikator albumu oraz dodaj nowy tytuł lub nowe zdjęcie na okładkę identyfikatora elementu multimedialnego w żądaniu. Musisz użyć metody photoslibrary.edit.appcreateddata zakres autoryzacji, aby wprowadzić zmianę.

Tytuły albumów mogą mieć maksymalnie 500 znaków. Okładki multimediów musi należeć do właściciela albumu i musi być jego okładką; .

REST

Oto nagłówek żądania PATCH, który służy do aktualizacji właściwości title i albumu coverPhotomediaItemId

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 maską pola wskazywaną przez parametry updateMask w parametrze Adres URL. Parametr updateMask musi zostać przekazany w przypadku każdej z nich. właściwość albumu, która jest aktualizowana.

W przypadku każdej aktualizowanej usługi uwzględnij jej szczegóły w treść żądania:

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

Jeśli operacja się uda, odpowiedź zwróci zaktualizowany atrybut album szczegóły:

{
  "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

Elementy multimedialne z biblioteki Zdjęć Google użytkownika możesz dodać do albumu przez: połączenia albums.batchAddMediaItems Elementy multimedialne są dodawane na końcu albumu w kolejności określonej w tym wywołaniu.

Jeśli określisz nieprawidłowy element multimedialny lub nieprawidłowy album, całe żądanie zakończy się niepowodzeniem. 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 przekroczy ten limit.

Pamiętaj, że możesz dodawać tylko te elementy multimedialne, które zostały przesłane przez Twoją aplikację do albumów, które zawiera Twoja aplikacja; . Elementy multimedialne też musi znajdować się w bibliotece użytkownika. W przypadku udostępnionych albumów muszą: być należący do użytkownik lub użytkownik musi być współpracownikiem, który już dołączył do albumu.

Aby dodać elementy multimedialne do albumu, wywołaj albums.batchAddMediaItems 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ę uda, odpowiedź zwróci pustą odpowiedź JSON i żądanie HTTP Stan sukcesu.

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

Możesz usunąć dodane przez siebie elementy multimedialne z albumu, łącząc się albums.batchRemoveMediaItems

Jeśli zostaną określone nieprawidłowe elementy multimedialne, całe żądanie zakończy się niepowodzeniem. Częściowe nie jest obsługiwany.

Pamiętaj, że można usuwać tylko te elementy multimedialne, które są przypisane do aplikacji. dodał użytkownika do albumu lub tych, które zostały utworzone w albumie w ramach prześlij. Albumy udostępnione, możesz usunąć elementy dodane przez innych współpracowników, jeśli: działają w imieniu właściciel albumu.

Aby usunąć elementy multimedialne z albumu, wywołaj albums.batchRemoveMediaItems identyfikatory 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 żądanie HTTP Stan sukcesu.

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
}