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