ขอบเขตการให้สิทธิ์ที่จำเป็น
การแสดงเนื้อหาที่สร้างในแอปต้องใช้ขอบเขต photoslibrary.readonly.appcreateddata
ดูข้อมูลเพิ่มเติมเกี่ยวกับขอบเขตได้ที่ขอบเขตการให้สิทธิ์
ภาพรวม
Library API ช่วยให้คุณแสดงรายการและเข้าถึงรายการสื่อที่แอปพลิเคชันสร้างขึ้นได้
ฟีเจอร์หลักบางรายการของการแสดงรายการสื่อมีดังนี้
- แสดงรายการสื่อจากอัลบั้มที่สร้างโดยแอปที่เฉพาะเจาะจงหรือทั้งไลบรารีที่สร้างโดยแอป
ใช้ตัวกรอง (วันที่ หมวดหมู่เนื้อหา ประเภทสื่อ) เมื่อแสดงข้อมูลเพื่อจำกัดผลการค้นหาให้แคบลง
เรียกข้อมูลออบเจ็กต์
mediaItem
พร้อมรายละเอียดที่สำคัญ เช่น ลิงก์โดยตรงและข้อมูลเมตา
การแสดงรายการเนื้อหาของคลังและอัลบั้มจะแสดงรายการรายการสื่อ
การเพิ่มประสิทธิภาพที่เป็นส่วนหนึ่งของอัลบั้มจะไม่รวมอยู่ด้วย รายการสื่อจะอธิบายรูปภาพ วิดีโอ หรือสื่ออื่นๆ mediaItem
จะมีลิงก์โดยตรงไปยังรายการดังกล่าว ลิงก์ไปยังรายการใน Google Photos และข้อมูลเมตาอื่นๆ ที่เกี่ยวข้อง โปรดดูข้อมูลเพิ่มเติมที่หัวข้อเข้าถึงรายการสื่อและ mediaItems
แสดงรายการอัลบั้มที่สร้างโดยแอป
คุณสามารถแสดงรายการอัลบั้มที่แอปของคุณสร้างขึ้นได้โดยใช้ albums.list
REST
ตัวอย่างคำขอมีดังนี้
GET https://photoslibrary.googleapis.com/v1/albums
คําขอแสดงผลลัพธ์ต่อไปนี้
{ "albums": [ { "id": "album-id", "title": "album-title", "productUrl": "album-product-url", "coverPhotoBaseUrl": "album-cover-base-url_do-not-use-directly", "coverPhotoMediaItemId": "album-cover-media-item-id", "isWriteable": "whether-you-can-write-to-this-album", "mediaItemsCount": "number-of-media-items-in-album" }, ... ], "nextPageToken": "token-for-pagination" }
อัลบั้มที่แสดงผลแต่ละรายการจะมีรหัสที่ใช้ดึงข้อมูลเนื้อหาของอัลบั้มได้ ดังที่แสดงในแสดงรายการเนื้อหาของอัลบั้ม รวมถึงชื่อและจำนวนรายการสื่อที่มี
productUrl
ชี้ไปที่อัลบั้มใน Google Photos ที่ผู้ใช้เปิดได้
coverPhotoMediaItemId
มีรหัสรายการสื่อที่แสดงถึงภาพหน้าปกของอัลบั้มนี้ หากต้องการเข้าถึงรูปภาพปกนี้ ให้ใช้ coverPhotoBaseUrl
คุณไม่ควรใช้ coverPhotoBaseUrl
โดยตรงโดยไม่ระบุพารามิเตอร์เพิ่มเติม
การตอบกลับจะมี nextPageToken
ด้วย ดูข้อมูลเพิ่มเติมได้ที่การแบ่งหน้า
การตอบกลับสำหรับอัลบั้มว่างจะแตกต่างกันตรงที่ mediaItemsCount
และ coverPhotoMediaItemId
จะตั้งค่าเป็น 0 โดยค่าเริ่มต้นและจะละเว้นจากการตอบกลับ REST และโปรดทราบว่า coverPhotoBaseUrl
จะชี้ไปยังรูปภาพตัวยึดตําแหน่งเริ่มต้น
แสดงเนื้อหาไลบรารีที่แอปสร้างขึ้น
คุณสามารถแสดงรายการสื่อทั้งหมดจากคลังภาพ Google Photos ของผู้ใช้ที่แอปของคุณสร้างขึ้น โดยไม่รวมรายการที่เก็บถาวรและรายการที่ลบไปแล้ว คุณแสดงรายการสื่อตามเนื้อหา วันที่ และพร็อพเพอร์ตี้อื่นๆ ได้โดยการใช้ตัวกรอง
หากต้องการแสดงรายการสื่อ ให้เรียกใช้ mediaItems.list
REST
ตัวอย่างคำขอมีดังนี้
GET https://photoslibrary.googleapis.com/v1/mediaItems
Content-type: application/json
Authorization: Bearer oauth2-token
{
"pageSize": "100",
}
คำขอ GET จะแสดงการตอบกลับต่อไปนี้
{ "mediaItems": [ ... ], "nextPageToken": "token-for-pagination" }
การตอบกลับจะมีรายการรายการสื่อที่จัดเรียงจากล่าสุดไปจนถึงล่าสุด
ดูข้อมูลเพิ่มเติมได้ที่ mediaItems
และมี nextPageToken
ด้วย ซึ่งอธิบายไว้อย่างละเอียดในการแบ่งหน้า
แสดงรายการเนื้อหาของอัลบั้ม
หากต้องการแสดงรายการสื่อทั้งหมดในอัลบั้ม ให้เพิ่มช่อง albumId
ลงในคำขอค้นหา ดูข้อมูลเพิ่มเติมเกี่ยวกับ albumId
ได้ที่การระบุอัลบั้ม หาก albumId
ไม่ถูกต้อง ระบบจะแสดงข้อผิดพลาด Bad Request
หากรหัสถูกต้อง แต่ไม่มีอัลบั้มสำหรับผู้ใช้ที่ตรวจสอบสิทธิ์แล้ว ระบบจะแสดงข้อผิดพลาด Not Found
ดูรายละเอียดเพิ่มเติมเกี่ยวกับการจัดการข้อผิดพลาดได้ที่เคล็ดลับด้านประสิทธิภาพและแนวทางปฏิบัติแนะนํา
REST
ตัวอย่างคำขอมีดังนี้
POST https://photoslibrary.googleapis.com/v1/mediaItems:search
Content-type: application/json
Authorization: Bearer oauth2-token
{
"pageSize": "100",
"albumId": "album-id"
}
คำขอ POST จะแสดงผลลัพธ์ต่อไปนี้
{ "mediaItems": [ ... ], "nextPageToken": "token-for-pagination" }
การตอบกลับจะมี nextPageToken
และลิสต์สื่อ ซึ่งแตกต่างจากการแสดงเนื้อหาของคลังภาพตรงที่ระบบจะแสดงรายการสื่อตามลำดับในอัลบั้ม ดูรายละเอียดเพิ่มเติมได้ที่ mediaItems
และการใส่เลขหน้า ผู้ใช้แก้ไขคำสั่งซื้อได้ในอินเทอร์เฟซ Google Photos
หากตั้งค่า albumId
ไว้ คุณจะไม่สามารถใช้ตัวกรองเมื่อแสดงเนื้อหาของอัลบั้ม
เนื่องจากจะทำให้ระบบแสดงข้อผิดพลาด Bad Request
การแบ่งหน้าสำหรับ REST
วิธีการที่แสดงผลลัพธ์จํานวนมาก (เช่น วิธีการแสดงรายการ) อาจแบ่งการตอบกลับเป็นหน้าเพื่อปรับปรุงประสิทธิภาพ จำนวนผลลัพธ์สูงสุดในแต่ละหน้าจะระบุโดยพารามิเตอร์ pageSize
สำหรับการเรียก mediaItems.search
และ mediaItems.list
ขนาดหน้าเริ่มต้นคือ 25 รายการ เราขอแนะนําขนาดหน้านี้เนื่องจากช่วยให้เกิดความสมดุลระหว่างขนาดของคําตอบกับอัตราการส่งโฆษณา ขนาดหน้าสูงสุดสำหรับคำขอค้นหารายการสื่อและคำขอรายการคือ 100 รายการ
ขนาดหน้าเริ่มต้นและที่แนะนำเมื่อแสดงรายการอัลบั้มคือ 20 อัลบั้ม โดยมีจำนวนสูงสุด 50 อัลบั้ม
เมื่อจํานวนผลการค้นหาที่มีอยู่มากกว่าขนาดหน้า การตอบกลับจะมี nextPageToken
ซึ่งบ่งบอกให้แอปพลิเคชันทราบว่ายังมีผลการค้นหาที่ดึงมาจากเซิร์ฟเวอร์ได้
ตัวอย่าง
คุณต้องใส่ nextPageToken
ต่อท้ายคำขอต่อๆ ไปในพารามิเตอร์
pageToken
ดังที่แสดงในตัวอย่างต่อไปนี้ ระบุ pageToken
ร่วมกับพารามิเตอร์อื่นๆ ที่จําเป็นสําหรับการดำเนินการ ไม่ว่าจะอยู่ในเนื้อหาของคําขอหรือใช้เป็นพารามิเตอร์การค้นหา
คำขอ #1
{ "pageSize": "5", "filters": { … } }
คำตอบ #1
{ "mediaItem": [ … ], "nextPageToken": "next-page-token" }
คำขอ #2
{ "pageSize": "5", "filters": { … }, "pageToken": "page-token" }
การตอบกลับ #2
{ "mediaItem": [ … ], "nextPageToken": "next-page-token" }
ใช้รูปแบบนี้ต่อไปจนกว่าจะไม่มีวัตถุ nextPageToken
อีก
nextPageToken
จะใช้ได้กับคำขอเดียวกันเท่านั้น หากมีการเปลี่ยนแปลงพารามิเตอร์ใดก็ตาม คุณไม่ควรใช้ nextPageToken
ที่เคยใช้ในคําขอเดียวกัน