앨범 관리

Google 포토에서는 앨범을 사용하여 사진 및 기타 미디어 항목을 정리할 수 있습니다. 미디어 항목은 하나 이상의 앨범과 연결될 수 있습니다. 미디어 항목을 앨범에 연결하려면 먼저 앨범을 만들어야 합니다.

필수 승인 범위

앨범을 만들려면 앱이 다음 승인 범위 중 하나 이상을 요청해야 합니다.

  • photoslibrary.appendonly
  • photoslibrary.sharing

만든 후에 앨범의 제목이나 표지 사진을 변경하려면 photoslibrary.edit.appcreateddata 범위를 사용합니다.

새 앨범 만들기

앨범을 만들려면 albums.create를 호출하고 title를 포함합니다. title는 500자(영문 기준)로 제한됩니다.

호출하면 앨범이 반환됩니다. 앱은 이 정보의 앨범 ID를 저장하여 특정 앨범에 미디어 항목을 업로드하는 데 사용할 수 있습니다.

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

Java

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
}

2,399필리핀

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를 만들고 요청에 새 제목이나 새 표지 사진의 미디어 항목 ID를 포함합니다. 변경하려면 photoslibrary.edit.appcreateddata 승인 범위를 사용해야 합니다.

앨범 제목은 500자(영문 기준) 이하여야 합니다. 커버 미디어 항목은 앨범 소유자가 소유해야 하며, 커버 미디어 항목은 앨범에 속해야 합니다.

REST

다음은 앨범의 titlecoverPhotomediaItemId를 업데이트하는 PATCH 요청 헤더입니다.

PATCH https://photoslibrary.googleapis.com/v1/albums/album-id?updateMask=title&updateMask=coverPhotoMediaItemId

이 요청은 URL에서 updateMask 매개변수로 표시된 필드 마스크를 포함하여 업데이트 중인 속성을 결정합니다. 업데이트 중인 각 앨범 속성에 관해 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"
}

Java

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
}

2,399필리핀

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
}

앨범에 미디어 항목 추가

albums.batchAddMediaItems를 호출하여 사용자의 Google 포토 라이브러리에 있는 미디어 항목을 앨범에 추가할 수 있습니다. 미디어 항목은 이 호출에 지정된 순서대로 앨범 끝에 추가됩니다.

잘못된 미디어 항목 또는 앨범이 지정되면 전체 요청이 실패합니다. 부분 성공은 지원되지 않습니다.

각 앨범은 최대 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 성공 상태를 반환합니다.

Java

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
}

2,399필리핀

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를 호출합니다.

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 성공 상태를 반환합니다.

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
}

2,399필리핀

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
}