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

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