ขอบเขตการให้สิทธิ์ที่จําเป็น
ขอบเขต photoslibrary.readonly
อนุญาตให้เข้าถึงรายการสื่อทั้งหมดในคลังภาพของผู้ใช้
การค้นหาและการใช้ตัวกรองกับเนื้อหาที่สร้างโดยแอปต้องใช้ขอบเขต
photoslibrary.readonly.appcreateddata
ดูข้อมูลเพิ่มเติมเกี่ยวกับขอบเขตได้ที่ขอบเขตการให้สิทธิ์
ตัวกรองที่พร้อมใช้งาน
คุณสามารถค้นหาคลังรายการสื่อที่สร้างขึ้นจากแอปของผู้ใช้เพื่อหาสื่อบางประเภทได้ เช่น คุณอาจต้องการเฉพาะรูปภาพสัตว์จากวันหนึ่งๆ หรือต้องการยกเว้นรูปภาพใบเสร็จ คุณสามารถยกเว้นหรือรวมรายการที่เฉพาะเจาะจงได้โดยใช้ตัวกรองกับรายการอัลบั้มหรือคลัง ตัวกรองที่ใช้ได้ 5 รายการตามพร็อพเพอร์ตี้ของรายการสื่อมีดังนี้
- หมวดหมู่เนื้อหา (
includedContentCategories
,excludedContentCategories
) - วันที่และช่วงวันที่ (
dates
,ranges
) - ฟีเจอร์ (
featureFilter
) - ประเภทสื่อ (
mediaTypeFilter
) - สถานะที่เก็บถาวร (
includeArchivedMedia
)
คุณไม่ควรใช้ตัวกรองในคำขอ mediaItems.search
หากตั้งค่า albumId
ไว้ หากมีการใช้ตัวกรองเมื่อตั้งค่า albumId ระบบจะแสดงข้อผิดพลาด 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 }
PHP
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 Photos บางครั้งอาจมีการจัดประเภทรายการไม่ถูกต้อง เราจึงไม่สามารถรับประกันความถูกต้องของตัวกรองหมวดหมู่เนื้อหา
รวมถึงหมวดหมู่
เมื่อคุณรวมหลายหมวดหมู่ ระบบจะรวมรายการสื่อที่ตรงกับหมวดหมู่ใดก็ได้ ใส่หมวดหมู่ได้สูงสุด 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);
PHP
// 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);
PHP
// 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()] );
การรวมและยกเว้นหมวดหมู่หลายหมวดหมู่
คุณสามารถรวมบางหมวดหมู่ไว้ และยกเว้นหมวดหมู่อื่นๆ ได้ ตัวอย่างต่อไปนี้จะแสดงผล LANDSCAPES
และ LANDMARKS
แต่จะนำรายการสื่อที่มี 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);
PHP
// 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()] );
วันที่และช่วงวันที่
ตัวกรองวันที่จะจํากัดวันที่ของผลลัพธ์ที่แสดงเป็นชุดวันตามที่ระบุ การระบุตัวกรองวันที่ทำได้ 2 วิธี ได้แก่ วันที่หรือช่วง คุณใช้วันที่และช่วงร่วมกันได้ ระบบจะแสดงรายการสื่อที่ตรงกับวันที่หรือช่วงวันที่ คุณแก้ไขลําดับการจัดเรียงของผลลัพธ์ได้หากต้องการ
วันที่
วันที่จะประกอบด้วยปี เดือน และวัน รูปแบบที่ยอมรับมีดังนี้
- ปี
- ปี เดือน
- ปี เดือน วัน
- เดือน วัน
- เดือน
หากองค์ประกอบของวันที่ว่างเปล่าหรือตั้งค่าเป็น 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);
PHP
// 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()] );
ช่วงวันที่
ช่วงวันที่มีความยืดหยุ่นมากกว่าวันที่ ตัวอย่างเช่น คุณสามารถใช้ช่วงวันที่เพื่อดูชุดวันภายในเดือนแทนการเพิ่มวันที่หลายวัน
ช่วงวันที่มี startDate
และ endDate
ซึ่งต้องตั้งค่าทั้ง 2 รายการ แต่ละวันที่ในช่วงมีข้อจำกัดด้านรูปแบบเดียวกันตามที่อธิบายไว้ในวันที่ วันที่ต้องอยู่ในรูปแบบเดียวกัน หากวันที่เริ่มต้นเป็นปีและเดือน วันที่สิ้นสุดต้องเป็นปีและเดือนด้วย ระบบจะใช้ช่วงแบบรวม ซึ่งวันที่เริ่มต้นและวันที่สิ้นสุดจะรวมอยู่ในตัวกรองที่ใช้
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);
PHP
// 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);
PHP
// 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 Photos
รายการโปรด
รวมฟีเจอร์รายการ FAVORITES
ไว้ใน FeatureFilter
เพื่อแสดงเฉพาะรายการสื่อที่ผู้ใช้ทำเครื่องหมายว่ารายการโปรด
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);
PHP
// 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, รูปภาพเคลื่อนไหว, ภาพพาโนรามา, ภาพ 360 องศา และรูปภาพ VR
วิดีโอ
VIDEO
อาจเป็นวิดีโอรูปแบบต่างๆ ดังนี้
3GP | MMV |
3G2 | ม็อด |
ASF | MOV |
AVI | MP4 |
DIVX | MPG |
M2T | MTS |
M2TS | TOD |
M4V | WMV |
MKV |
VIDEO
ยังมีรูปแบบวิดีโอพิเศษ เช่น วิดีโอ VR, วิดีโอสโลว์โมชัน และภาพเคลื่อนไหวที่สร้างขึ้นในแอปพลิเคชัน Google Photos
ตัวอย่างต่อไปนี้จะกรองตาม 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);
PHP
// 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()] );
ไม่สามารถรวมตัวกรองประเภทสื่อหลายประเภทเข้าด้วยกัน
สถานะ "เก็บแล้ว"
ผู้ใช้อาจเก็บถาวรรูปภาพบางส่วนไว้แล้ว โดยค่าเริ่มต้น รูปภาพที่เก็บถาวร จะไม่ปรากฏในการค้นหา หากต้องการรวมรายการที่เก็บไว้ ให้ตั้งค่า Flag ในตัวกรองดังที่แสดงในตัวอย่างต่อไปนี้
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);
PHP
// 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);
PHP
// 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);
PHP
// 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 ] );