앨범 관리

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

필수 승인 범위

앨범을 만들려면 photoslibrary.appendonly 범위가 필요합니다.

앨범을 만든 후 앨범의 제목이나 표지 사진을 변경하려면 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"
}

앨범 세부정보 검색

앱에서 만든 기존 앨범의 세부정보를 검색하려면 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를 만들고 요청에 새 제목 또는 새 표지 사진의 미디어 항목 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"
}

앨범에 미디어 항목 추가

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

앨범에서 미디어 항목 삭제하기

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

자바

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
}