เซสชันคือหัวใจของ Picker API โดยให้มีความมั่นคงและควบคุมได้ วิธีการให้ผู้ใช้เลือกรูปภาพและอัลบั้มจากคลังภาพ Google Photos คู่มือนี้จะอธิบายวิธีสร้าง จัดการ และสำรวจเซสชันอย่างมีประสิทธิภาพเพื่อให้เลือกรูปภาพในแอปได้อย่างราบรื่น
ก่อนจะเริ่ม
- กำหนดค่าแอป: เปิดใช้ API และตั้งค่าการตรวจสอบสิทธิ์ โปรดดู กำหนดค่าแอปเพื่อดูรายละเอียด ขั้นตอน
- ทำความเข้าใจขั้นตอน: ดูเริ่มต้นใช้งาน Picker APIเพื่อดูภาพรวมของกระบวนการเลือกรูปภาพทั้งหมด
- ตรวจสอบขอบเขตการให้สิทธิ์ที่จำเป็น: การทำงานกับเซสชันจำเป็นต้องมี
photospicker.mediaitems.readonly
ขอบเขต สำหรับข้อมูลเพิ่มเติมเกี่ยวกับขอบเขต ดูขอบเขตการให้สิทธิ์
วงจรเซสชัน
API เครื่องมือเลือกมีวิธีสร้าง ดึงข้อมูลเกี่ยวกับ และ ลบเซสชัน หลังจากตรวจสอบสิทธิ์ผู้ใช้แล้ว คุณจะใช้เซสชันเพื่อจัดการได้ วงจรการเลือกรูปภาพ
- สร้างเซสชันเพื่อให้ผู้ใช้เลือกรายการสื่อได้
- ตรวจสอบเซสชันเพื่อดูว่าผู้ใช้เลือกรายการสื่อเสร็จแล้วหรือยัง
- แสดงรายการและเรียกข้อมูลรายการสื่อ
- จัดระเบียบเซสชันโดยการลบ
สร้างเซสชัน
สร้างเซสชันเพื่อให้ผู้ใช้เลือกรูปภาพได้อย่างปลอดภัยจาก แอป Google Photos และแชร์กลับไปที่แอปพลิเคชันของคุณ
sessions.create
สร้างเซสชันใหม่ โดยแสดง pickerUri
ที่ไม่ซ้ำซึ่ง
สามารถนำเสนอแก่ผู้ใช้ได้ เซสชันจะยังคงทำงานต่อไปจนกว่าผู้ใช้จะเลือกรายการสื่อได้สำเร็จหรือเซสชันหมดเวลา
ขีดจำกัดเซสชัน
โปรดคำนึงถึงขีดจํากัดของเซสชัน Picker API บังคับใช้ขีดจำกัดของจำนวน เซสชันที่คุณสร้างได้เพื่อให้มั่นใจได้ถึงการใช้งานอย่างมีความรับผิดชอบและป้องกันการละเมิด ต่ำกว่า ในสถานการณ์ปกติ คุณจะไม่ถึงขีดจำกัดเหล่านี้ อย่างไรก็ตาม คุณควรติดตามและล้างเซสชันอย่างสม่ำเสมอเพื่อหลีกเลี่ยงปัญหา
ทำแบบสำรวจและตรวจสอบเซสชัน
เมื่อสร้างเซสชันแล้ว ให้สำรวจปลายทาง sessions.get
เป็นระยะๆ เพื่อรับ
สถานะของเซสชัน พร็อพเพอร์ตี้ mediaItemsSet
ในการตอบกลับนั้นแสดงผล
true
เมื่อผู้ใช้เลือกตัวเลือกเสร็จแล้ว
คุณควรใช้แบบสำรวจที่มีประสิทธิภาพ การตอบกลับ sessions.get
ประกอบด้วย
pollingConfig
ออบเจ็กต์ ใช้ช่องต่อไปนี้เพื่อช่วยหลีกเลี่ยงการเรียกใช้ที่ไม่จำเป็นและสร้างประสบการณ์การใช้งานที่ราบรื่น
pollInterval
: ช่วงการหยั่งสัญญาณที่เหมาะสมtimeoutIn
: ระยะหมดเวลา
ดูรายละเอียดเพิ่มเติมได้ที่ตัวอย่างขั้นตอนการโหวต
ลบและล้างเซสชัน
sessions.delete
นำเซสชันออก ซึ่งโดยทั่วไปจะใช้เพื่อล้างข้อมูลหลังจากที่ผู้ใช้เลือกสื่อเสร็จแล้วหรือในกรณีที่เซสชันหมดเวลา
แนวทางปฏิบัติแนะนำคือการลบเซสชันเมื่อผู้ใช้เลือกรายการสื่อแล้ว และแอปของคุณได้ดึงรายการสื่อแล้ว ไบต์
ตัวอย่างขั้นตอนการหยั่งสัญญาณ
ตัวอย่างนี้คือการสร้างและโพลเซสชัน หลังจากการตรวจสอบสิทธิ์ครั้งแรก สร้างเซสชันใหม่
- สร้างเซสชัน: โทรหา
sessions.create
เพื่อเริ่มเซสชันใหม่และ รับpickerUri
- แสดง
pickerUri
ต่อผู้ใช้: แสดง URL หรือสร้างคิวอาร์โค้ดให้ผู้ใช้สแกน - สำรวจความคิดเห็นในเซสชัน:
- ใช้ SurveysInterval ที่แนะนำจาก
pollingConfig
- ตรวจสอบว่า
mediaItemsSet
เป็นจริงหรือไม่- หากเป็น
true
ให้ดำเนินการต่อเพื่อแสดงรายการสื่อที่เลือก - หากเป็น
false
ให้ทำแบบสำรวจต่อไปจนกว่าจะถึงเวลาtimeoutIn
- หากเป็น
- จัดการกับการหมดเวลาและการยกเลิกอย่างมีชั้นเชิง
- ใช้ SurveysInterval ที่แนะนำจาก
GET https://photoslibrary.googleapis.com/v1/sessions/{sessionId}
ตัวอย่างคำตอบมีดังนี้
{
"id": string,
"pickerUri": string,
"pollingConfig": {
object (PollingConfig)
},
"mediaItemsSet": boolean
}
นำเสนอ pickerUri
ต่อผู้ใช้ แล้วเริ่มแบบสำรวจในเซสชัน
ตรวจสอบการตอบกลับสำหรับกรณีต่อไปนี้
mediaItemsSet
: จริง หากผู้ใช้เลือกรายการสื่อเสร็จแล้วpollingConfig.pollInterval
: เวลาที่แนะนำสำหรับรอ ก่อนแบบสำรวจถัดไปpollingConfig.timeoutIn
: เวลาทั้งหมดที่ต้องรอก่อน หมดเวลา
หาก mediaItemsSet
เป็นเท็จและยังไม่ได้ถึง timeoutIn
ให้รอจนกว่า pollInterval
จะปรากฏขึ้น แล้วทำการสำรวจอีกครั้ง
หาก mediaItemsSet
เป็นจริง ให้ดำเนินการต่อเพื่อแสดงรายการสื่อที่เลือก
หากถึง timeoutIn
ให้จัดการระยะหมดเวลาอย่างสุภาพ