필터 검색 및 적용

필수 승인 범위

Google 포토 라이브러리 API에는 미디어 항목 및 앨범에 액세스하는 데 사용되는 여러 범위가 포함되어 있습니다. 다양한 호출에서 반환되는 미디어 항목은 개발자가 요청한 범위에 따라 다릅니다.

photoslibrary.readonly 범위를 사용하면 사용자 라이브러리에 있는 모든 미디어 항목에 액세스할 수 있습니다. photoslibrary.readonly.appcreateddata 범위는 앱에서 만든 미디어 항목에만 액세스를 허용합니다. 자세한 내용은 승인 범위를 참고하세요.

사용 가능 필터

사용자의 라이브러리에서 특정 종류의 미디어를 검색할 수 있습니다. 예를 들어 특정 날짜의 동물 항목만 원하거나 영수증 사진을 제외할 수 있습니다. 앨범 또는 라이브러리 목록에 필터를 적용하여 특정 항목을 제외하거나 포함할 수 있습니다. 미디어 항목 속성에 따라 다음과 같은 다섯 가지 필터를 사용할 수 있습니다.

albumId가 설정된 경우 mediaItems:search 요청에서 필터를 사용하면 안 됩니다. 앨범 ID가 설정될 때 필터가 사용되면 INVALID_ARGUMENT 오류(400)가 반환됩니다.

결과는 미디어 항목 생성 시간에 따라 정렬됩니다. 날짜 필터를 사용하는 쿼리의 경우 정렬 순서를 수정할 수 있습니다.

새로 업로드된 미디어가 검색에 표시될 때까지 약간의 시간이 소요됩니다. 필터링되지 않은 검색에 미디어가 즉시 표시됩니다.

날짜가 미래인 미디어 항목은 필터링된 검색결과에 표시되지 않습니다. 필터링되지 않은 검색 및 앨범 검색에 표시됩니다.

필터 적용

필터를 적용하려면 mediaItems.search를 호출하고 filter 속성을 지정합니다.

REST

다음은 POST 요청입니다.

POST https://photoslibrary.googleapis.com/v1/mediaItems:search
Content-type: application/json
Authorization: Bearer oauth2-token
{
  "pageSize": "100",
  "filters": {
    ...
  }
}

POST 요청이 다음과 같은 응답을 반환합니다.

{
  "mediaItems": [
    ...
  ],
  "nextPageToken": "token-for-pagination"
}

Java

try {
  // Create a new Filter object
  Filters filters = Filters.newBuilder()
      // .setContentFilter(...)
      // .setDateFilter(...)
      // ...
      .build();

  // Specify the Filter object in the searchMediaItems call
  SearchMediaItemsPagedResponse response = photosLibraryClient.searchMediaItems(filters);
  for (MediaItem item : response.iterateAll()) {
    // ...
  }
} catch (ApiException e) {
  // Handle error
}

2,399필리핀

try {
    $filtersBuilder = new FiltersBuilder();
    // $filtersBuilder->addIncludedCategory(...);
    // $filtersBuilder->addDate(...);
    // ...
    // Make a search call with the options set in the filters builder
    $response = $photosLibraryClient->searchMediaItems(
        ['filters' => $filtersBuilder->build()]
    );
    foreach ($response->iterateAllElements() as $element) {
        // ...
    }
} catch (\Google\ApiCore\ApiException $e) {
    // Handle error
}

자세한 내용은 라이브러리 콘텐츠, 앨범, 미디어 항목 나열을 참고하세요.

콘텐츠 카테고리

모든 미디어 항목이 처리되고 라벨이 할당됩니다. 다음 카테고리를 포함하거나 제외할 수 있습니다.

ANIMALS FASHION LANDMARKS RECEIPTS WEDDINGS
ARTS FLOWERS LANDSCAPES SCREENSHOTS WHITEBOARDS
BIRTHDAYS FOOD NIGHT SELFIES  
CITYSCAPES GARDENS PEOPLE SPORT  
CRAFTS HOLIDAYS PERFORMANCES TRAVEL  
DOCUMENTS HOUSES PETS UTILITY  

공공 서비스 사진은 다양한 미디어를 다룹니다. 이 카테고리에는 일반적으로 사용자가 특정 작업을 실행하기 위해 캡처한 항목과 해당 작업이 완료된 후 원하지 않을 항목이 포함됩니다. 여기에는 문서, 영수증, 스크린샷, 스티커 메모, 메뉴 및 기타 유사한 미디어 항목이 포함됩니다.

카테고리는 Google 포토의 해당 라벨만큼 정확합니다. 경우에 따라 항목에 라벨이 잘못 지정될 수 있으므로 Google에서는 콘텐츠 카테고리 필터의 정확성을 보장하지 않습니다.

카테고리 포함

여러 카테고리를 포함하면 카테고리 중 하나라도 일치하는 미디어 항목이 포함됩니다. 요청당 최대 10개의 카테고리를 포함할 수 있습니다. 이 예시 필터는 LANDSCAPES 또는 LANDMARKS의 항목을 반환합니다.

REST

{
  "filters": {
    "contentFilter": {
      "includedContentCategories": [
        "LANDSCAPES",
        "LANDMARKS"
      ]
    }
  }
}

Java

// Create a content filter that includes landmarks and landscapes
ContentFilter contentFilter = ContentFilter.newBuilder()
    .addIncludedContentCategories(ContentCategory.LANDMARKS)
    .addIncludedContentCategories(ContentCategory.LANDSCAPES)
    .build();
// Create a new Filters object
Filters filters = Filters.newBuilder()
    .setContentFilter(contentFilter)
    .build();
// Specify the Filter object in the searchMediaItems call
SearchMediaItemsPagedResponse response = photosLibraryClient.searchMediaItems(filters);

2,399필리핀

// Create a content filter that includes landmarks and landscapes
$filtersBuilder = new FiltersBuilder();
$filtersBuilder->addIncludedCategory(ContentCategory::LANDMARKS);
$filtersBuilder->addIncludedCategory(ContentCategory::LANDSCAPES);
// Make a search call with the options set in the filters builder
$response = $photosLibraryClient->searchMediaItems(
    ['filters' => $filtersBuilder->build()]
);

카테고리 제외

제외된 카테고리와 일치하지 않는 미디어 항목만 표시됩니다. 포함된 카테고리와 마찬가지로 요청당 최대 10개의 카테고리를 제외할 수 있습니다.

이 필터는 PEOPLE 또는 SELFIES가 아닌 항목을 반환합니다.

REST

{
  "filters": {
    "contentFilter": {
      "excludedContentCategories": [
        "PEOPLE",
        "SELFIES"
      ]
    }
  }
}

Java

// Create a content filter that excludes people and selfies
ContentFilter contentFilter = ContentFilter.newBuilder()
    .addExcludedContentCategories(ContentCategory.PEOPLE)
    .addExcludedContentCategories(ContentCategory.SELFIES)
    .build();
// Create a new Filters object
Filters filters = Filters.newBuilder()
    .setContentFilter(contentFilter)
    .build();
// Specify the Filter object in the searchMediaItems call
SearchMediaItemsPagedResponse response = photosLibraryClient.searchMediaItems(filters);

2,399필리핀

// Create a content filter that excludes people and selfies
$filtersBuilder = new FiltersBuilder();
$filtersBuilder->addExcludedCategory(ContentCategory::PEOPLE);
$filtersBuilder->addExcludedCategory(ContentCategory::SELFIES);
// Make a search call with the options set in the filters builder
$response = $photosLibraryClient->searchMediaItems(
    ['filters' => $filtersBuilder->build()]
);

여러 카테고리 포함 및 제외

일부 카테고리는 포함하고 나머지는 제외할 수 있습니다. 다음 예에서는 LANDSCAPESLANDMARKS를 반환하지만 PEOPLE를 포함하거나 SELFIES인 모든 미디어 항목을 삭제합니다.

REST

{
  "filters": {
    "contentFilter": {
      "includedContentCategories": [
        "LANDSCAPES",
        "LANDMARKS"
      ],
      "excludedContentCategories": [
        "PEOPLE",
        "SELFIES"
      ]
    }
  }
}

Java

// Create a content filter that excludes people and selfies and includes landmarks and landscapes
ContentFilter contentFilter = ContentFilter.newBuilder()
    .addIncludedContentCategories(ContentCategory.LANDSCAPES)
    .addIncludedContentCategories(ContentCategory.LANDMARKS)
    .addExcludedContentCategories(ContentCategory.PEOPLE)
    .addExcludedContentCategories(ContentCategory.SELFIES)
    .build();
// Create a new Filters object
Filters filters = Filters.newBuilder()
    .setContentFilter(contentFilter)
    .build();
// Specify the Filters object in the searchMediaItems call
SearchMediaItemsPagedResponse response = photosLibraryClient.searchMediaItems(filters);

2,399필리핀

// Create a content filter that excludes people and selfies and includes landmarks and landscapes
$filtersBuilder = new FiltersBuilder();
$filtersBuilder->addIncludedCategory(ContentCategory::LANDMARKS);
$filtersBuilder->addIncludedCategory(ContentCategory::LANDSCAPES);
$filtersBuilder->addExcludedCategory(ContentCategory::PEOPLE);
$filtersBuilder->addExcludedCategory(ContentCategory::SELFIES);
// Make a search call with the options set in the filters builder
$response = $photosLibraryClient->searchMediaItems(
    ['filters' => $filtersBuilder->build()]
);

날짜 및 기간

날짜 필터는 반환된 결과의 날짜를 지정된 일수로 제한합니다. 날짜 필터는 날짜 또는 기간이라는 두 가지 방법으로 지정할 수 있습니다. 날짜와 범위는 함께 사용할 수 있습니다. 날짜 또는 날짜 범위와 일치하는 미디어 항목이 반환됩니다. 선택적으로 결과 정렬 순서를 수정할 수 있습니다.

날짜

날짜에는 연도, 월, 일이 포함됩니다. 허용되는 형식은 다음과 같습니다.

  • 연도
  • 년, 월
  • 년, 월, 일
  • 월, 일

날짜 구성요소가 비어 있거나 0으로 설정된 경우 와일드 카드로 처리됩니다. 예를 들어 연도와 월은 설정하지 않고 일과 월은 설정하지 않으면 연도와 상관없이 해당 일과 월의 항목이 요청됩니다.

REST

{
  "filters": {
    "dateFilter": {
      "dates": [
        {
          "month": 2,
          "day": 15
        }
      ]
    }
  }
}

Java

// Create a new com.google.type.Date object using a builder
// Note that there are different valid combinations as described above
Date dayFebruary15 = Date.newBuilder()
    .setDay(15)
    .setMonth(2)
    .build();
// Create a new dateFilter. You can also set multiple dates here
DateFilter dateFilter = DateFilter.newBuilder()
    .addDates(dayFebruary15)
    .build();
// Create a new Filters object
Filters filters = Filters.newBuilder()
    .setDateFilter(dateFilter)
    .build();
// Specify the Filters object in the searchMediaItems call
SearchMediaItemsPagedResponse response = photosLibraryClient.searchMediaItems(filters);

2,399필리핀

// Create a new Google\Type\Date object with a day and a month
// Note that there are different valid combinations as described above
$dateFebruary15 = new Date();
$dateFebruary15->setDay(15);
$dateFebruary15->setMonth(2);
$filtersBuilder = new FiltersBuilder();
// Add the date to the filter. You can also set multiple dates here
$filtersBuilder->addDate($dateFebruary15);
// Make a search call with the options set in the filters builder
$response = $photosLibraryClient->searchMediaItems(
    ['filters' => $filtersBuilder->build()]
);

기간

날짜 범위는 날짜보다 유연합니다. 예를 들어 여러 날짜를 추가하는 대신 기간을 사용하여 한 달 내에 있는 일련의 날짜를 확인할 수 있습니다.

기간에는 startDateendDate이(가) 있으며 둘 다 설정해야 합니다. 범위의 각 날짜에는 날짜에서 설명한 것과 동일한 형식 제약 조건이 적용됩니다. 날짜 형식은 동일해야 합니다. 시작일이 연도와 월이면 종료일도 연도와 월이 되어야 합니다. 범위는 포괄적으로 적용되며 시작일과 종료일은 적용된 필터에 포함됩니다.

REST

{
  "filters": {
    "dateFilter": {
      "ranges": [
        {
          "startDate": {
            "year": 2014,
            "month": 6,
            "day": 12
          },
          "endDate": {
            "year": 2014,
            "month": 7,
            "day": 13
          }
        }
      ]
    }
  }
}

Java

// Create new com.google.type.Date objects for two dates
Date day2014June12 = Date.newBuilder()
    .setDay(12)
    .setMonth(6)
    .setYear(2014)
    .build();
Date day2014July13 = Date.newBuilder()
    .setDay(13)
    .setMonth(7)
    .setYear(2014)
    .build();
// Create a DateRange from these two dates
DateRange dateRange = DateRange.newBuilder()
    .setStartDate(day2014June12)
    .setEndDate(day2014July13)
    .build();
// Create a new dateFilter with the date range. You can also set multiple date ranges here
DateFilter dateFilter = DateFilter.newBuilder()
    .addRanges(dateRange)
    .build();
// Create a new Filters object
Filters filters = Filters.newBuilder()
    .setDateFilter(dateFilter)
    .build();
// Specify the Filters object in the searchMediaItems call
SearchMediaItemsPagedResponse response = photosLibraryClient.searchMediaItems(filters);

2,399필리핀

// Create two new Google\Type\Date objects
    $date2014June12 = new Date();
    $date2014June12->setDay(12);
    $date2014June12->setMonth(6);
    $date2014June12->setYear(2014);

    $date2014July13 = new Date();
    $date2014July13->setDay(13);
    $date2014July13->setMonth(7);
    $date2014July13->setYear(2014);

    // Add the two dates as a date range to the filter
    // You can also set multiple date ranges here
    $filtersBuilder = new FiltersBuilder();
    $filtersBuilder->addDateRange($date2014June12, $date2014July13);

    // Make a search call with the options set in the filters builder
    $response = $photosLibraryClient->searchMediaItems(
        ['filters' => $filtersBuilder->build()]
    );

날짜 및 기간 결합

여러 날짜와 여러 기간을 동시에 사용할 수 있습니다. 이 날짜 중 하나에 속하는 항목은 결과에 포함됩니다. 서로 다른 날짜와 기간이 동일한 형식을 따를 필요는 없지만, 각 기간의 시작일과 종료일은 다음과 같습니다.

REST

{
  "filters": {
    "dateFilter": {
      "dates": [
        {
          "year": 2013
        },
        {
          "year": 2011,
          "month": 11
        }
      ],
      "ranges": [
        {
          "startDate": {
            "month": 1
          },
          "endDate": {
            "month": 3
          }
        },
        {
          "startDate": {
            "month": 3,
            "day": 24
          },
          "endDate": {
            "month": 5,
            "day": 2
          }
        }
      ]
    }
  }
}

Java

// Create a new com.google.type.Date object for the year 2013
Date day2013 = Date.newBuilder()
    .setYear(2013)
    .build();
// Create a new com.google.type.Date object for November 2011
Date day2011November = Date.newBuilder()
    .setMonth(11)
    .setYear(2011)
    .build();
// Create a date range for January to March
DateRange dateRangeJanuaryToMarch = DateRange.newBuilder()
    .setStartDate(Date.newBuilder().setMonth(1).build())
    .setEndDate(Date.newBuilder().setMonth(3).build())
    .build();
// Create a date range for March 24 to May 2
DateRange dateRangeMarch24toMay2 = DateRange.newBuilder()
    .setStartDate(Date.newBuilder().setMonth(3).setDay(24).build())
    .setEndDate(Date.newBuilder().setMonth(5).setDay(2).build())
    .build();
// Create a new dateFilter with the dates and date ranges
DateFilter dateFilter = DateFilter.newBuilder()
    .addDates(day2013)
    .addDates(day2011November)
    .addRanges(dateRangeJanuaryToMarch)
    .addRanges(dateRangeMarch24toMay2)
    .build();
// Create a new Filters object
Filters filters = Filters.newBuilder()
    .setDateFilter(dateFilter)
    .build();
// Specify the Filter object in the searchMediaItems call
SearchMediaItemsPagedResponse response = photosLibraryClient.searchMediaItems(filters);

2,399필리핀

// Create a new Google\Type\Date object for the year 2013
$date2013 = new Date();
$date2013->setYear(2013);

// Create a new Google\Type\Date object for November 2011
$dateNovember2011 = new Date();
$dateNovember2011->setMonth(11);
$dateNovember2011->setYear(2011);

$filtersBuilder = new FiltersBuilder();

// Create a date range for January to March
$filtersBuilder->addDateRange((new Date())->setMonth(1),
    (new Date())->setMonth(3));

// Create a date range for March 24 to May 2
$filtersBuilder->addDateRange((new Date())->setMonth(3)->setDay(24),
    (new Date())->setMonth(5)->setDay(2));

$filtersBuilder->addDate($date2013);
$filtersBuilder->addDate($dateNovember2011);

// Make a search call with the options set in the filters builder
$response = $photosLibraryClient->searchMediaItems(
    ['filters' => $filtersBuilder->build()]
);

미디어 항목 기능

기능 필터는 특정 기능이 있는 항목(예: Google 포토 애플리케이션에서 즐겨찾기로 표시된 항목)으로 결과를 제한합니다.

즐겨찾기

FeatureFilterFAVORITES 항목 기능을 포함하여 사용자가 즐겨찾기로 표시한 미디어 항목만 반환합니다.

REST

{
  "filters" : {
    "featureFilter": {
      "includedFeatures": [
        "FAVORITES"
      ]
    }
  }
}

Java

// Create a new FeatureFilter for favorite media items
FeatureFilter featureFilter = FeatureFilter.newBuilder()
    .addIncludedFeatures(Feature.FAVORITES)
    .build();
// Create a new Filters object
Filters filters = Filters.newBuilder()
    .setFeatureFilter(featureFilter)
    .build();
// Specify the Filters object in the searchMediaItems call
SearchMediaItemsPagedResponse response = photosLibraryClient.searchMediaItems(filters);

2,399필리핀

// Create a new FeatureFilter for favorite media items
$filtersBuilder = new FiltersBuilder();
$filtersBuilder->addIncludedFeature(Feature::FAVORITES);

// Make a search call with the options set in the filters builder
$response = $photosLibraryClient->searchMediaItems(
    ['filters' => $filtersBuilder->build()]
);

미디어 유형

결과를 미디어 유형(사진 또는 동영상)으로 제한할 수 있습니다.

사진

PHOTO는 다음과 같은 여러 이미지 형식 중 하나일 수 있습니다.

BMP JPG
GIF PNG
HEIC TIFF
ICO WEBP

또한 iOS Live 사진, 모션 사진, 파노라마, Photo Sphere 사진, VR 사진과 같은 특별한 사진 유형도 포함됩니다.

동영상

VIDEO는 다양한 동영상 형식일 수 있습니다.

3GP MMV
3G2 MOD
ASF MOV
AVI MP4
DIVX MPG
M2T MTS
M2TS 토드
MV WMV
MKV  

VIDEO에는 Google 포토 애플리케이션에서 만든 VR 동영상, 슬로 모션 동영상, 애니메이션과 같은 특수 동영상 형식도 포함됩니다.

다음 예에서는 PHOTO로 필터링합니다.

REST

{
  "filters": {
    "mediaTypeFilter": {
      "mediaTypes": [
        "PHOTO"
      ]
    }
  }
}

Java

// Create a new MediaTypeFilter for Photo media items
MediaTypeFilter mediaType = MediaTypeFilter.newBuilder()
    .addMediaTypes(MediaType.PHOTO)
    .build();
// Create a new Filters object
Filters filters = Filters.newBuilder()
    .setMediaTypeFilter(mediaType)
    .build();
// Specify the Filters object in the searchMediaItems call
SearchMediaItemsPagedResponse response = photosLibraryClient.searchMediaItems(filters);

2,399필리핀

// Create a new MediaTypeFilter for Photo media items
$filtersBuilder = new FiltersBuilder();
$filtersBuilder->setMediaType(MediaType::PHOTO);

// Make a search call with the options set in the filters builder
$response = $photosLibraryClient->searchMediaItems(
    ['filters' => $filtersBuilder->build()]
);

여러 미디어 유형 필터는 결합할 수 없습니다.

앱 이외에서 생성한 데이터 제외

앱에서 만들지 않은 미디어 항목을 제외하려면 다음 예와 같이 excludeNonAppCreatedData 필터를 설정하면 됩니다.

REST

{
  "filters": {
    "excludeNonAppCreatedData": true
  }
}

Java

// Create a new Filters object that excludes media not created by your app
Filters filters = Filters.newBuilder()
    .setExcludeNonAppCreatedData(true)
    .build();

// Specify the Filters object in the searchMediaItems call
SearchMediaItemsPagedResponse response = photosLibraryClient.searchMediaItems(filters);

2,399필리핀

// Create a new Filters object that excludes media not created by your app
$filtersBuilder = new FiltersBuilder();
$filtersBuilder->setExcludeNonAppCreatedData(true);

// Make a search call with the options set in the filters builder
$response = $photosLibraryClient->searchMediaItems(
    ['filters' => $filtersBuilder->build()]
);

.readonly.appcreateddata 범위를 사용하는 경우 이 필터는 무시됩니다.

보관처리된 상태

사용자가 사진 중 일부를 보관처리했을 수 있습니다. 기본적으로 보관처리된 사진은 검색 시 반환되지 않습니다. 보관처리된 항목을 포함하려면 다음 예와 같이 필터에 플래그를 설정하면 됩니다.

REST

{
  "filters": {
    "includeArchivedMedia": true
  }
}

Java

// Create a new Filters object that includes archived media
Filters filters = Filters.newBuilder()
    .setIncludeArchivedMedia(true)
    .build();

// Specify the Filters object in the searchMediaItems call
SearchMediaItemsPagedResponse response = photosLibraryClient.searchMediaItems(filters);

2,399필리핀

// Create a new Filters object that includes archived media
$filtersBuilder = new FiltersBuilder();
$filtersBuilder->setIncludeArchivedMedia(true);

// Make a search call with the options set in the filters builder
$response = $photosLibraryClient->searchMediaItems(
    ['filters' => $filtersBuilder->build()]
);

필터 결합

다양한 종류의 필터를 결합할 수 있습니다. 요청된 모든 특성과 일치하는 항목만 반환됩니다.

필터를 결합할 때 각 필터 유형의 형식 지정 제한은 개별적으로 사용되는 경우와 동일합니다. 다음 예에서는 SPORT로 분류된 2014년 또는 2010년의 사진만 반환됩니다.

REST

{
  "filters": {
    "contentFilter": {
      "includedContentCategories": [
        "SPORT"
      ]
    },
    "dateFilter": {
      "dates": [
        {
          "year": 2014
        },
        {
          "year": 2010
        }
      ]
    },
    "mediaTypeFilter": {
      "mediaTypes": [
        "PHOTO"
      ]
    }
  }
}

Java

// Create a new ContentFilter that only includes SPORT items
ContentFilter contentFilter = ContentFilter.newBuilder()
    .addIncludedContentCategories(ContentCategory.SPORT)
    .build();
// Create a new media type filter that only includes PHOTO media items
MediaTypeFilter mediaTypeFilter = MediaTypeFilter.newBuilder()
    .addMediaTypes(MediaType.PHOTO)
    .build();
// Create a new DateFilter that only includes items from 2010 or 2014
Date year2014 = Date.newBuilder().setYear(2014).build();
Date year2010 = Date.newBuilder().setYear(2010).build();
DateFilter dateFilter = DateFilter.newBuilder()
    .addDates(year2010)
    .addDates(year2014)
    .build();
// Create a new Filters object combining these filters
Filters filters = Filters.newBuilder()
    .setDateFilter(dateFilter)
    .setMediaTypeFilter(mediaTypeFilter)
    .setContentFilter(contentFilter)
    .build();
// Specify the Filter object in the searchMediaItems call
SearchMediaItemsPagedResponse response = photosLibraryClient.searchMediaItems(filters);

2,399필리핀

// Create a new ContentFilter
$filtersBuilder = new FiltersBuilder();
// Only include SPORT items
$filtersBuilder->addIncludedCategory(ContentCategory::SPORT);
// Only include PHOTO media items
$filtersBuilder->setMediaType(MediaType::PHOTO);
// Only include items from 2010 or 2014
$year2014 = new Date();
$year2014->setYear(2014);
$year2010 = new Date();
$year2010->setYear(2010);
$filtersBuilder->addDateRange($year2010, $year2014);

// Make a search call with the options set in the filters builder
// Filters have been combined in the filter builder
$response = $photosLibraryClient->searchMediaItems(
    ['filters' => $filtersBuilder->build()]
);

결과 정렬

날짜 필터를 사용하는 쿼리만 정렬할 수 있습니다.

정렬 옵션을 지정하지 않으면 결과가 최신 항목부터 내림차순으로 정렬됩니다.

다음 표는 orderBy 매개변수에 지원되는 옵션을 보여줍니다.

orderBy 매개변수
MediaMetadata.creation_time desc 미디어 항목을 내림차순으로 반환합니다 (최신 항목부터 표시).
MediaMetadata.creation_time 미디어 항목을 오름차순으로 반환 (오래된 항목부터 표시)

다음 예에서는 2017년의 모든 미디어 항목을 반환하여 가장 오래된 항목부터 가장 최근 항목까지 표시합니다.

REST

{
  "filters": {
    "dateFilter": {
      "dates": [
        {
          "year": 2017
        }
      ]
    }
  },
  "orderBy": "MediaMetadata.creation_time"
}

Java

// Create a new dateFilter for the year 2017.
DateFilter dateFilter = DateFilter.newBuilder()
        .addDates(Date.newBuilder().setYear(2017))
        .build();

// Create a new Filters object
Filters filters = Filters.newBuilder()
        .setDateFilter(dateFilter)
        .build();

// Sort results by oldest item first.
final OrderBy newestFirstOrder = OrderBy.MEDIAMETADATA_CREATION_TIME;

// Specify the filter and sort order in the searchMediaItems call.
SearchMediaItemsPagedResponse response
        = photosLibraryClient.searchMediaItems(filters, newestFirstOrder);

2,399필리핀

// Create a new dateFilter for the year 2017.
$filtersBuilder = new FiltersBuilder();
$filtersBuilder->addDate((new Date())->setYear(2017));

// Make a search call with the options set in the filters builder and sort
// the results by oldest item first.
$response = $photosLibraryClient->searchMediaItems(
    [
        'filters' => $filtersBuilder->build(),
        'orderBy' => OrderBy::MEDIAMETADATA_CREATION_TIME
    ]
);