เซสชันเป็นหัวใจสำคัญของ Picker API ซึ่งเป็นวิธีที่ปลอดภัยและควบคุมได้ เพื่อให้ผู้ใช้เลือกรูปภาพและวิดีโอจากคลังภาพ Google Photos ได้ คู่มือนี้จะอธิบายวิธีสร้าง จัดการ และสำรวจเซสชันอย่างมีประสิทธิภาพเพื่อเปิดใช้การเลือกรูปภาพในแอปได้อย่างราบรื่น
ก่อนจะเริ่ม
- กำหนดค่าแอป: เปิดใช้ API และตั้งค่าการตรวจสอบสิทธิ์ ดูขั้นตอนโดยละเอียดได้ที่หัวข้อ กำหนดค่าแอป
- ทำความเข้าใจขั้นตอน: ดูเริ่มต้นใช้งาน Picker API เพื่อดูภาพรวมของกระบวนการเลือกรูปภาพทั้งหมด
- ตรวจสอบขอบเขตการให้สิทธิ์ที่จำเป็น: การทำงานกับเซสชันต้องใช้ขอบเขต
photospicker.mediaitems.readonly
ดูข้อมูลเพิ่มเติมเกี่ยวกับขอบเขตได้ที่ขอบเขตการให้สิทธิ์
วงจรเซสชัน
Picker API มีเมธอดสำหรับสร้าง เรียกข้อมูลเกี่ยวกับ และ ลบเซสชัน หลังจากตรวจสอบสิทธิ์ผู้ใช้แล้ว คุณจะใช้เซสชันเพื่อจัดการวงจรการเลือกรูปภาพได้
- สร้างเซสชันเพื่อให้ผู้ใช้เลือกรายการสื่อได้
- สำรวจเซสชันเพื่อตรวจสอบว่าผู้ใช้เลือกรายการสื่อเสร็จแล้วเมื่อใด
- แสดงรายการและเรียกข้อมูลรายการสื่อ
- ล้างข้อมูลเซสชันโดยการลบ
สร้างเซสชัน
สร้างเซสชันเพื่อให้ผู้ใช้เลือกรูปภาพได้อย่างปลอดภัยจากแอป Google Photos โดยตรง และแชร์กลับไปยังแอปพลิเคชันของคุณ
sessions.create
จะสร้างเซสชันใหม่และแสดง pickerUri
ที่ไม่ซ้ำกัน
ซึ่งคุณสามารถนำเสนอต่อผู้ใช้ได้ เซสชันจะยังคงใช้งานได้จนกว่าผู้ใช้จะเลือกรายการสื่อสำเร็จ หรือเซสชันหมดเวลา สำหรับแอปพลิเคชันบนเว็บ คุณสามารถต่อท้าย /autoclose
กับ pickerUri
เพื่อปิดหน้าต่างหรือแท็บ Google Photos โดยอัตโนมัติหลังจากที่ผู้ใช้เลือกเสร็จแล้ว ดูรายละเอียดได้ที่การเลือกรูปภาพ: สิ่งที่ผู้ใช้เห็น
ขีดจำกัดเซสชัน
โปรดทราบขีดจำกัดของเซสชัน Picker API จะบังคับใช้ขีดจำกัดจำนวนเซสชันที่คุณสร้างได้เพื่อให้มั่นใจถึงการใช้งานอย่างมีความรับผิดชอบและป้องกันการละเมิด ในสถานการณ์ปกติ คุณไม่น่าจะถึงขีดจำกัดเหล่านี้ อย่างไรก็ตาม คุณควรติดตามและล้างข้อมูลเซสชันอย่างสม่ำเสมอเพื่อหลีกเลี่ยงปัญหา
สำรวจและตรวจสอบเซสชัน
เมื่อสร้างเซสชันแล้ว ให้สำรวจข้อมูลเป็นระยะๆ ที่ปลายทาง sessions.get
เพื่อดูสถานะของเซสชัน
mediaItemsSet
พร็อพเพอร์ตี้ในการตอบกลับจะแสดง true
เมื่อผู้ใช้เลือกเสร็จสมบูรณ์แล้ว
ตรวจสอบว่าได้ใช้การสำรวจที่มีประสิทธิภาพ การตอบกลับ sessions.get
จะมีออบเจ็กต์
pollingConfig
ใช้ช่องต่อไปนี้เพื่อช่วยหลีกเลี่ยงการเรียกที่ไม่จำเป็น
และสร้างประสบการณ์การใช้งานที่ราบรื่น
pollInterval
: ช่วงการสำรวจที่เหมาะสมtimeoutIn
: ระยะหมดเวลา
ดูรายละเอียดเพิ่มเติมได้ที่ตัวอย่างขั้นตอนการทำโพล
ลบและล้างข้อมูลเซสชัน
sessions.delete
จะนำเซสชันออก ซึ่งโดยปกติจะใช้สำหรับการล้างข้อมูลหลังจากที่ผู้ใช้
เลือกสื่อเสร็จแล้ว หรือหากเซสชันหมดเวลา
แนวทางปฏิบัติแนะนำคือการลบเซสชันเมื่อผู้ใช้เลือกรายการสื่อแล้วและแอปของคุณได้ดึงข้อมูลไบต์ของรายการสื่อ
ตัวอย่างขั้นตอนการทำโพล
นี่คือตัวอย่างการสร้างและทำแบบสำรวจในเซสชัน หลังจากตรวจสอบสิทธิ์ผู้ใช้ครั้งแรก แล้ว ให้สร้างเซสชันใหม่
- สร้างเซสชัน: โทรหา
sessions.create
เพื่อเริ่มเซสชันใหม่และ รับpickerUri
- แสดง
pickerUri
ต่อผู้ใช้: แสดง URL หรือสร้างคิวอาร์โค้ดเพื่อให้ผู้ใช้สแกน อ่านภาพรวมของประสบการณ์การเลือกของผู้ใช้ - ทำแบบสำรวจในเซสชัน:
- ใช้ pollInterval ที่แนะนำจาก
pollingConfig
- ตรวจสอบว่า
mediaItemsSet
เป็นจริงหรือไม่- หาก
true
ให้ดำเนินการต่อเพื่อแสดงรายการสื่อที่เลือก - หาก
false
ให้ทำการสำรวจต่อไปจนกว่าจะถึงtimeoutIn
- หาก
- จัดการการหมดเวลาและการยกเลิกอย่างราบรื่น
- ใช้ pollInterval ที่แนะนำจาก
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
ให้จัดการการหมดเวลาอย่างเหมาะสม