Управление альбомами

В Google Фото можно упорядочивать фотографии и другие мультимедийные объекты с помощью альбомов. Мультимедийный объект может быть связан с одним или несколькими альбомами. Чтобы начать связывать мультимедийные объекты с альбомом, сначала нужно создать альбом.

Необходимые области авторизации

Для создания альбомов требуется область действия photoslibrary.appendonly.

Чтобы изменить название или обложку альбома после его создания, требуется область действия photoslibrary.edit.appcreateddata.

Подробнее об областях авторизации…

Как создать новый альбом

Чтобы создать альбом, вызовите albums.create и укажите title. Обратите внимание, что в поле title можно ввести не более 500 символов.

Вызов возвращает альбом. Приложение может сохранить идентификатор альбома и использовать его для загрузки объектов в этот альбом.

REST

Вот пример заголовка для запроса 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"
}

Получение сведений об альбоме

Чтобы получить сведения о существующем альбоме, созданном вашим приложением, вызовите albums.get и укажите albumId нужного альбома.

Вызов возвращает альбом.

REST

Вот пример заголовка для GET-запроса:

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

Тело запроса выглядит следующим образом:

{
  "albumId": album-id
}

В случае успеха возвращается альбом.

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

Как изменить название или обложку альбома

Чтобы изменить название альбома или обложку, отправьте запрос album update call с идентификатором альбома и укажите в запросе новое название или идентификатор медиаобъекта для новой обложки. Для этого вам понадобится область действия photoslibrary.edit.appcreateddata authorization.

Название альбома не должно превышать 500 символов. Мультимедийные объекты, используемые в качестве обложки, должны принадлежать владельцу альбома и находиться в альбоме, для которого они будут обложкой.

REST

Ниже приведен пример заголовка запроса 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"
}

Как добавить мультимедийные объекты в альбом

Вы можете добавлять мультимедийные объекты, созданные вашим приложением, в альбомы, созданные вашим приложением, с помощью метода albums.batchAddMediaItems. Мультимедийные объекты добавляются в конец альбома в порядке, указанном в этом вызове.

Если указан недопустимый мультимедийный объект или альбом, запрос не будет выполнен. Частичный успех не поддерживается.

В каждом альбоме может быть до 20 000 мультимедийных объектов. Запросы на добавление дополнительных элементов, которые превышают это ограничение, будут отклонены.

Чтобы добавить мультимедийные объекты в альбом, вызовите метод albums.batchAddMediaItems, указав идентификаторы мультимедийных объектов и альбома.

REST

Вот пример заголовка для запроса 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 Success.

Как удалить мультимедийные объекты из альбома

Чтобы удалить мультимедийные объекты, созданные вашим приложением, из альбомов, созданных вашим приложением, вызовите метод albums.batchRemoveMediaItems.

Если указаны недопустимые мультимедийные объекты, запрос не будет выполнен. Частичный успех не поддерживается.

Чтобы удалить мультимедийные объекты из альбома, вызовите метод albums.batchRemoveMediaItems, указав идентификаторы мультимедийных объектов и альбома.

REST

Вот пример заголовка для запроса 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 Success.

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
}