В Google Фото вы можете упорядочивать фотографии и другие мультимедийные объекты с помощью альбомов. Медиа-элемент может быть связан с одним или несколькими альбомами. Чтобы начать связывать мультимедийные элементы с альбомом, сначала необходимо создать альбом.
Требуемые области авторизации
Для создания альбомов требуется область photoslibrary.appendonly
.
Для изменения названия или обложки альбомов после их создания требуется область данных photoslibrary.edit.appcreateddata
.
Дополнительные сведения об областях см. в разделе Области авторизации .
Создать новый альбом
Чтобы создать альбом, вызовите albums.create
и укажите title
. Обратите внимание, что title
ограничен 500 символами.
Вызов возвращает альбом . Ваше приложение может сохранить идентификатор альбома на основе этой информации и использовать его для загрузки мультимедийных элементов в определенный альбом.
Вот заголовок POST-запроса:
POST https://photoslibrary.googleapis.com/v1/albums Content-type: application/json Authorization: Beareroauth2-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: Beareroauth2-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: Beareroauth2-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: Beareroauth2-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
}