สร้างและจัดการเซสชัน

เซสชันคือหัวใจของ Picker API โดยให้ผู้ใช้สามารถเลือกรูปภาพและวิดีโอจากคลังภาพ Google Photos ได้อย่างปลอดภัยและควบคุมได้ คู่มือนี้จะอธิบายวิธีสร้าง จัดการ และสำรวจเซสชันอย่างมีประสิทธิภาพเพื่อให้เลือกรูปภาพในแอปได้อย่างราบรื่น

ก่อนจะเริ่ม

  • กำหนดค่าแอป: เปิดใช้ API และตั้งค่าการตรวจสอบสิทธิ์ ดูขั้นตอนโดยละเอียดที่หัวข้อกำหนดค่าแอป
  • ทำความเข้าใจขั้นตอน: อ่านเริ่มต้นใช้งาน Picker API เพื่อดูภาพรวมของขั้นตอนการเลือกรูปภาพทั้งหมด
  • ตรวจสอบขอบเขตการให้สิทธิ์ที่จําเป็น: การทำงานกับเซสชันต้องใช้ขอบเขต photospicker.mediaitems.readonly ดูข้อมูลเพิ่มเติมเกี่ยวกับขอบเขตได้ที่ขอบเขตการให้สิทธิ์

วงจรของเซสชัน

Picker API มีเมธอดสำหรับสร้าง เรียกข้อมูล และลบเซสชัน หลังจากตรวจสอบสิทธิ์ผู้ใช้แล้ว คุณจะใช้เซสชันเพื่อจัดการวงจรการเลือกรูปภาพได้

  1. สร้างเซสชันเพื่อให้ผู้ใช้เลือกรายการสื่อได้
  2. ตรวจสอบเซสชันเพื่อดูว่าผู้ใช้เลือกรายการสื่อเสร็จแล้วหรือยัง
  3. แสดงรายการและเรียกข้อมูลรายการสื่อ
  4. จัดระเบียบเซสชันโดยการลบ

สร้างเซสชัน

สร้างเซสชันเพื่อให้ผู้ใช้เลือกรูปภาพจากแอป Google Photos โดยตรงได้อย่างปลอดภัย และแชร์รูปภาพกลับไปยังแอปพลิเคชันของคุณ

sessions.create จะสร้างเซสชันใหม่ โดยแสดงผล pickerUri ที่ไม่ซ้ำกันซึ่งคุณสามารถนำเสนอต่อผู้ใช้ เซสชันจะยังคงทำงานต่อไปจนกว่าผู้ใช้จะเลือกรายการสื่อได้สำเร็จหรือเซสชันหมดเวลา

ขีดจำกัดเซสชัน

โปรดคำนึงถึงขีดจำกัดเซสชัน Picker API จะจำกัดจำนวนเซสชันที่คุณสร้างได้เพื่อการใช้งานอย่างมีความรับผิดชอบและป้องกันการละเมิด ในสถานการณ์ปกติ คุณจะไม่ถึงขีดจำกัดเหล่านี้ อย่างไรก็ตาม คุณควรติดตามและล้างเซสชันอย่างสม่ำเสมอเพื่อหลีกเลี่ยงปัญหา

ทำแบบสำรวจและตรวจสอบเซสชัน

เมื่อสร้างเซสชันแล้ว ให้ทำการสำรวจปลายทาง sessions.get เป็นระยะๆ เพื่อดูสถานะของเซสชัน พร็อพเพอร์ตี้ mediaItemsSet ในคำตอบจะแสดงผลเป็น true เมื่อผู้ใช้เลือกเสร็จแล้ว

ตรวจสอบว่าคุณใช้การสำรวจที่มีประสิทธิภาพ การตอบกลับ sessions.get จะมีออบเจ็กต์ pollingConfig ใช้ช่องต่อไปนี้เพื่อหลีกเลี่ยงการโทรที่ไม่จำเป็น และสร้างประสบการณ์การใช้งานที่ราบรื่น

  • pollInterval: ช่วงเวลาการโหวตที่เหมาะสม
  • timeoutIn: ระยะเวลาหมดเวลา

ดูรายละเอียดเพิ่มเติมได้ที่ตัวอย่างขั้นตอนการโหวต

ลบและล้างเซสชัน

sessions.delete จะนำเซสชันออก ซึ่งโดยทั่วไปจะใช้สำหรับการล้างข้อมูลหลังจากที่ผู้ใช้เลือกสื่อเสร็จแล้วหรือหากเซสชันหมดเวลา

แนวทางปฏิบัติแนะนำคือให้ลบเซสชันเมื่อผู้ใช้เลือกรายการสื่อแล้ว และแอปของคุณดึงข้อมูลรายการสื่อ

ตัวอย่างขั้นตอนการหยั่งสัญญาณ

นี่เป็นตัวอย่างการสร้างและการสำรวจเซสชัน หลังจากตรวจสอบสิทธิ์ผู้ใช้ครั้งแรกแล้ว ให้สร้างเซสชันใหม่

  1. สร้างเซสชัน: โทรหา sessions.create เพื่อเริ่มเซสชันใหม่และรับ pickerUri
  2. นำเสนอ pickerUri ให้กับผู้ใช้: แสดง URL หรือสร้างคิวอาร์โค้ดเพื่อให้ผู้ใช้สแกน อ่านภาพรวมของประสบการณ์การเลือกของผู้ใช้
  3. สำรวจเซสชัน
    1. ใช้ pollInterval ที่แนะนําจาก pollingConfig
    2. ตรวจสอบว่า mediaItemsSet เป็นจริงหรือไม่
      1. หากเป็น true ให้ดำเนินการต่อเพื่อแสดงรายการสื่อที่เลือก
      2. หากเป็น false ให้ทำการสำรวจต่อไปจนกว่าจะถึง timeoutIn
    3. จัดการการหมดเวลาและการยกเลิกอย่างราบรื่น
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 ให้จัดการการหมดเวลาอย่างเหมาะสม