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

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

Требуемые области авторизации

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

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

Дополнительные сведения об областях см. в разделе Области авторизации .

Создать новый альбом

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

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

ОТДЫХ

Вот заголовок 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 альбома, который вы хотите получить.

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

ОТДЫХ

Вот заголовок запроса 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 .

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

ОТДЫХ

Вот заголовок запроса 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 с идентификаторами элементов мультимедиа и альбома.

ОТДЫХ

Вот заголовок 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 с идентификаторами элементов мультимедиа и альбома.

Вот заголовок 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.

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