В Google Фото вы можете упорядочивать фотографии и другие элементы мультимедиа с помощью альбомов. Элемент мультимедиа может быть связан с одним или несколькими альбомами. Чтобы начать связывать элементы мультимедиа с альбомом, необходимо сначала создать альбом.
Требуемые области авторизации
Чтобы создать альбом, ваше приложение должно запросить хотя бы одну из следующих областей авторизации :
-
photoslibrary.appendonly
-
photoslibrary.sharing
Чтобы изменить название или фотографию обложки альбомов после их создания, используйте область действия 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" }
Ява
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 }
Изменение названий альбомов и обложек
Чтобы изменить название альбома или фотографию обложки, сделайте 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" }
Ява
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 }
Добавление медиафайлов в альбом
Вы можете добавить элементы мультимедиа из пользовательской библиотеки Google Фото в альбом, вызвав 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.
Ява
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 }
Удаление элементов мультимедиа из альбома
Вы можете удалить элементы мультимедиа, которые вы добавили из альбома, вызвав 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 }
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 }