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