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

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

ก่อนจะเริ่ม

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

วงจรเซสชัน

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. ใช้ SurveysInterval ที่แนะนำจาก 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 ให้จัดการระยะหมดเวลาอย่างสุภาพ