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

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

ก่อนจะเริ่ม

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

วงจรเซสชัน

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

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

สร้างเซสชัน

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

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

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

โปรดทราบขีดจำกัดของเซสชัน 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 ให้จัดการการหมดเวลาอย่างเหมาะสม