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

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

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

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

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

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

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

सेशन बनाना

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

sessions.create एक नया सेशन जनरेट करता है और एक यूनीक pickerUri दिखाता है, जिसे उपयोगकर्ताओं को दिखाया जा सकता है. सेशन तब तक चालू रहता है, जब तक उपयोगकर्ता मीडिया आइटम चुन नहीं लेता या सेशन का समय खत्म नहीं हो जाता. वेब पर काम करने वाले ऐप्लिकेशन के लिए, pickerUri में /autoclose जोड़कर, Google Photos की विंडो या टैब को अपने-आप बंद किया जा सकता है. ऐसा तब होगा, जब उपयोगकर्ता फ़ोटो चुन लेगा. ज़्यादा जानकारी के लिए, फ़ोटो चुनने की सुविधा: उपयोगकर्ताओं को क्या दिखता है लेख पढ़ें.

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

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

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

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

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

  • pollInterval: पोलिंग के सबसे सही इंटरवल
  • timeoutIn: टाइम आउट की अवधि

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

सेशन मिटाना और उन्हें व्यवस्थित करना

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

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

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

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

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

अगर mediaItemsSet की वैल्यू फ़ॉल्स है और timeoutIn तक नहीं पहुंचा गया है, तो pollInterval तक इंतज़ार करें. इसके बाद, फिर से पोल करें.

अगर mediaItemsSet सही है, तो चुने गए मीडिया आइटम की सूची बनाएं.

अगर timeoutIn तक पहुंचा जा चुका है, तो टाइम आउट को ठीक से मैनेज करें.