सेशन बनाना और उन्हें मैनेज करना

सेशन, Picker API के मुख्य हिस्से हैं. इनकी मदद से, उपयोगकर्ता अपनी Google Photos लाइब्रेरी से फ़ोटो और वीडियो चुन सकते हैं. यह तरीका सुरक्षित और कंट्रोल किया जा सकता है. इस गाइड में, ऐप्लिकेशन में आसानी से फ़ोटो चुनने की सुविधा चालू करने के लिए, पोल सेशन बनाने, मैनेज करने, और असरदार तरीके से पोल सेशन चलाने का तरीका बताया गया है.

शुरू करने से पहले

  • अपना ऐप्लिकेशन कॉन्फ़िगर करना: एपीआई को चालू करें और पुष्टि करने की सुविधा सेट अप करें. ज़्यादा जानकारी के लिए, अपने ऐप्लिकेशन को कॉन्फ़िगर करना लेख पढ़ें.
  • फ़ोटो चुनने की प्रोसेस को समझना: फ़ोटो चुनने की पूरी प्रोसेस की खास जानकारी पाने के लिए, पिकर एपीआई का इस्तेमाल शुरू करना देखें.
  • अनुमति के ज़रूरी दायरों की समीक्षा करें: सेशन के साथ काम करने के लिए, photospicker.mediaitems.readonly दायरे की ज़रूरत होती है. स्कोप के बारे में ज़्यादा जानकारी के लिए, अनुमति के स्कोप देखें.

सेशन का लाइफ़साइकल

पिकर एपीआई की मदद से, सेशन बनाने, उनकी जानकारी वापस पाने, और उन्हें मिटाने के तरीके बताए गए हैं. अपने उपयोगकर्ताओं की पुष्टि करने के बाद, फ़ोटो चुनने की लाइफ़साइकल को मैनेज करने के लिए सेशन का इस्तेमाल किया जा सकता है.

  1. उपयोगकर्ता को मीडिया आइटम चुनने की सुविधा देने के लिए, सेशन बनाएं.
  2. सेशन को पोल करें, ताकि यह पता लगाया जा सके कि उपयोगकर्ता ने मीडिया आइटम चुनना कब बंद किया.
  3. मीडिया आइटम की सूची बनाना और उन्हें वापस लाना.
  4. सेशन को मिटाकर, उसे मिटाएं.

सेशन बनाना

सेशन बनाएं, ताकि आपके उपयोगकर्ता सीधे अपने Google Photos ऐप्लिकेशन से फ़ोटो चुन सकें और उन्हें आपके ऐप्लिकेशन पर शेयर कर सकें.

sessions.create एक नया सेशन जनरेट करता है, जिससे एक यूनीक pickerUri दिखता है. इसे उपयोगकर्ताओं को दिखाया जा सकता है. सेशन तब तक चालू रहता है, जब तक उपयोगकर्ता मीडिया आइटम चुन नहीं लेता या सेशन टाइम आउट नहीं हो जाता.

सत्र की सीमाएं

सत्र की सीमाओं का ध्यान रखें. Picker API, सेशन की संख्या पर पाबंदी लगाता है. इससे यह पक्का किया जा सकता है कि इस सुविधा का सही तरीके से इस्तेमाल किया जा रहा है और इसका गलत इस्तेमाल नहीं किया जा रहा है. सामान्य परिस्थितियों में, आपके लिए इन सीमाओं तक पहुंचना मुश्किल है. हालांकि, किसी भी तरह की समस्या से बचने के लिए, आपको सेशन को समय-समय पर मिटाना चाहिए.

सेशन को पोल और मॉनिटर करना

सेशन बन जाने के बाद, सेशन का स्टेटस पाने के लिए, समय-समय पर sessions.get एंडपॉइंट को पोल करें. जब उपयोगकर्ता अपना विकल्प चुन लेता है, तो जवाब में mediaItemsSet प्रॉपर्टी true दिखाती है.

बेहतर पोलिंग का इस्तेमाल करें. sessions.get रिस्पॉन्स में, pollingConfig ऑब्जेक्ट शामिल होता है. गै़र-ज़रूरी कॉल से बचने और एक आसान उपयोगकर्ता अनुभव बनाने के लिए, इन फ़ील्ड का इस्तेमाल करें:

  • pollInterval: सर्वे के लिए सही इंटरवल
  • timeoutIn: टाइम आउट की अवधि

ज़्यादा जानकारी के लिए, पोल फ़्लो का उदाहरण देखें.

सेशन मिटाना और उन्हें साफ़ करना

sessions.delete किसी सेशन को हटाता है. आम तौर पर, इसका इस्तेमाल, उपयोगकर्ता के मीडिया चुनने के बाद या सेशन के टाइम आउट होने पर, सफ़ाई करने के लिए किया जाता है.

सबसे सही तरीका यह है कि उपयोगकर्ता के मीडिया आइटम चुनने और आपके ऐप्लिकेशन के मीडिया आइटम के बाइट हासिल करने के बाद, सेशन मिटा दिए जाएं.

पोलिंग फ़्लो का उदाहरण

यह सेशन बनाने और उसमें पोल करने का उदाहरण है. पहले अपने उपयोगकर्ता की पुष्टि करने के बाद, नया सेशन बनाएं.

  1. सेशन बनाना: नया सेशन शुरू करने और pickerUri पाने के लिए, sessions.create को कॉल करें.
  2. उपयोगकर्ता को pickerUri दिखाएं: उपयोगकर्ता को स्कैन करने के लिए यूआरएल दिखाएं या क्यूआर कोड जनरेट करें. उपयोगकर्ता के लिए प्रॉडक्ट चुनने के अनुभव के बारे में खास जानकारी पढ़ें.
  3. सेशन को पोल करें:
    1. 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 तक पहुंच जाता है, तो टाइम आउट को आसानी से मैनेज करें.