ขอบเขตการให้สิทธิ์ที่จําเป็น
ขอบเขต 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 ] );
