सबसे सही तरीके

अनुमति

Google Photos Library API को किए जाने वाले सभी अनुरोधों की पुष्टि किसी ऐसे उपयोगकर्ता को करनी होगी जिसकी पुष्टि हो चुकी है.

OAuth 2.0 के लिए अनुमति देने की प्रक्रिया से जुड़ी जानकारी, इस बात पर निर्भर करती है कि किस तरह का ऐप्लिकेशन लिखा जा रहा है. नीचे दी गई सामान्य प्रोसेस सभी तरह के ऐप्लिकेशन पर लागू होती है:

  1. अनुमति देने की प्रोसेस की तैयारी करने के लिए, यहां दिया गया तरीका अपनाएं:
    • Google API (एपीआई) कंसोल का इस्तेमाल करके अपना ऐप्लिकेशन रजिस्टर करें.
    • Library API को चालू करें और OAuth की जानकारी, जैसे कि क्लाइंट आईडी और क्लाइंट सीक्रेट को फिर से पाएं. ज़्यादा जानकारी के लिए, शुरू करें देखें.
  2. उपयोगकर्ता के डेटा को ऐक्सेस करने के लिए यह ऐप्लिकेशन, Google से ऐक्सेस के एक खास दायरे के लिए अनुरोध करता है.
  3. Google, लोगों को सहमति वाली स्क्रीन दिखाता है. इस स्क्रीन पर, उनसे कहा जाता है कि वे अपने कुछ डेटा का अनुरोध करने के लिए, ऐप्लिकेशन को अनुमति दें.
  4. अगर उपयोगकर्ता ने अनुमति दे दी है, तो Google उस ऐप्लिकेशन को एक ऐक्सेस टोकन देता है. इसकी समयसीमा कुछ समय बाद खत्म हो जाती है.
  5. ऐप्लिकेशन, उपयोगकर्ता के डेटा के लिए एक अनुरोध करता है. इसके लिए, अनुरोध में ऐक्सेस टोकन अटैच किया जाता है.
  6. अगर Google को लगता है कि अनुरोध और टोकन मान्य हैं, तो वह अनुरोध किया गया डेटा दिखाता है.

यह तय करने के लिए कि आपके ऐप्लिकेशन के लिए कौनसे दायरे सही हैं, अनुमति के दायरे देखें.

कुछ ऐप्लिकेशन प्रकारों की प्रक्रिया में अतिरिक्त चरण शामिल होते हैं, जैसे नया ऐक्सेस टोकन पाने के लिए रीफ़्रेश टोकन का इस्तेमाल करना. अलग-अलग तरह के ऐप्लिकेशन के लिए फ़्लो के बारे में ज़्यादा जानकारी के लिए, Google API ऐक्सेस करने के लिए OAuth 2.0 का इस्तेमाल करना देखें.

कैश मेमोरी में सेव करना

डेटा को अप-टू-डेट रखें.

अगर आपको परफ़ॉर्मेंस की वजह से मीडिया (जैसे कि थंबनेल, फ़ोटो या वीडियो) को कुछ समय के लिए सेव करना है, तो उसे हमारे इस्तेमाल के दिशा-निर्देशों के मुताबिक 60 मिनट से ज़्यादा समय के लिए कैश मेमोरी में न रखें.

आपको baseUrls को भी सेव नहीं करना चाहिए, जो करीब 60 मिनट बाद खत्म हो जाता है.

ऐसे मीडिया आइटम आईडी और एल्बम आईडी को कैश मेमोरी में सेव करने की पाबंदी से छूट दी गई है जो किसी उपयोगकर्ता की लाइब्रेरी में मौजूद कॉन्टेंट की खास तरीके से पहचान करते हैं. इन आईडी को हमेशा के लिए सेव किया जा सकता है (आपके ऐप्लिकेशन की निजता नीति के हिसाब से). सही एंडपॉइंट का इस्तेमाल करके, ऐक्सेस किए जा सकने वाले यूआरएल और डेटा को फिर से पाने के लिए, मीडिया आइटम आईडी और एल्बम आईडी का इस्तेमाल करें. ज़्यादा जानकारी के लिए, मीडिया आइटम पाना या लिस्टिंग एल्बम देखें.

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

एसएसएल का ऐक्सेस

सभी लाइब्रेरी एपीआई वेब सेवाओं के अनुरोधों के लिए एचटीटीपीएस ज़रूरी है. इसके लिए, इस यूआरएल का इस्तेमाल करना ज़रूरी है:

https://photoslibrary.googleapis.com/v1/service/output?parameters

एचटीटीपी पर किए गए अनुरोध अस्वीकार कर दिए गए हैं.

गड़बड़ी ठीक करना

एपीआई से मिलने वाली गड़बड़ियों को मैनेज करने का तरीका जानने के लिए, Cloud API से जुड़ी गड़बड़ियों को मैनेज करना लेख पढ़ें.

पूरे न हो पाने वाले अनुरोधों की फिर से कोशिश की जा रही है

क्लाइंट को एक्स्पोनेंशियल बैकऑफ़ वाली 5xx गड़बड़ियों के बारे में फिर से कोशिश करनी चाहिए, जैसा कि एक्सपोनेंशियल बैकऑफ़ में बताया गया है. कम से कम 1 s की देरी तब तक होनी चाहिए, जब तक कि इसके बारे में कोई और जानकारी न दी गई हो.

429 गड़बड़ियों के लिए, क्लाइंट कम से कम 30s देरी से कोशिश कर सकता है. दूसरी सभी गड़बड़ियों के लिए, हो सकता है कि 'फिर से कोशिश करें' सुविधा काम न करे. पक्का करें कि आपका अनुरोध कोई काम का न हो और मदद के लिए गड़बड़ी का मैसेज देखें.

एक्स्पोनेंशियल बैकऑफ़

बहुत कम मामलों में, आपके अनुरोध को पूरा करने में गड़बड़ी हो सकती है. आपको 4XX या 5XX एचटीटीपी रिस्पॉन्स कोड मिल सकता है. इसके अलावा, यह भी हो सकता है कि आपके क्लाइंट और Google के सर्वर के बीच टीसीपी कनेक्शन टूट जाए. अक्सर, अनुरोध का फिर से प्रयास करना बेहतर होता है. मूल अनुरोध पूरा न होने पर, फ़ॉलो अप का अनुरोध पूरा हो सकता है. हालांकि, यह ज़रूरी है कि Google के सर्वर से बार-बार अनुरोध करते हुए, लूप न किया जाए. लूप की यह गतिविधि, आपके क्लाइंट और Google के बीच ओवरलोड हो सकती है. इससे कई पक्षों को समस्याएं आ सकती हैं.

एक बेहतर तरीका यह है कि बार-बार कोशिश करने के बाद भी देरी हो. आम तौर पर, हर बार कोशिश करने पर, देरी को गुणा करने वाले फ़ैक्टर से बढ़ाया जाता है. इस तरीके को एक्सपोनेंशियल बैकऑफ़ कहा जाता है.

आपको इस बात का भी ध्यान रखना चाहिए कि ऐप्लिकेशन कॉल चेन में कोई ऐसा कोड नहीं है जिसके ज़रिए एक के बाद एक बार-बार अनुरोध किया जा सके.

Google API का विनम्र उपयोग

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

सिंक किए गए अनुरोध

Google के एपीआई के सिंक किए गए अनुरोधों की बड़ी संख्या, Google के इंफ़्रास्ट्रक्चर पर डिस्ट्रिब्यूटेड डिनायल ऑफ़ सर्विस (डीडीओएस) के हमले की तरह लग सकती है और उसी के मुताबिक उन पर कार्रवाई की जाती है. इससे बचने के लिए आपको यह पक्का करना चाहिए कि एपीआई अनुरोध क्लाइंट के बीच सिंक न किए गए हों.

उदाहरण के लिए, एक ऐसा ऐप्लिकेशन देखें जो मौजूदा टाइम ज़ोन में समय दिखाता है. शायद यह ऐप्लिकेशन क्लाइंट के ऑपरेटिंग सिस्टम में एक अलार्म सेट कर देगा जो उस मिनट के शुरू में ही चालू होगा ताकि दिखाए गए समय को अपडेट किया जा सके. ऐप्लिकेशन को उस अलार्म से जुड़ी प्रोसेसिंग के तहत कोई एपीआई कॉल नहीं करना चाहिए.

किसी तय अलार्म के रिस्पॉन्स में एपीआई कॉल करना खराब होता है, क्योंकि इसकी वजह से एपीआई कॉल, समय के साथ समान रूप से डिस्ट्रिब्यूट होने के बजाय, अलग-अलग डिवाइसों के बीच भी, मिनट की शुरुआत में सिंक होने लगते हैं. अगर किसी ऐप्लिकेशन के काम करने के तरीके में कोई कमी है, तो हर मिनट की शुरुआत में ट्रैफ़िक में सामान्य से साठ गुना बढ़ोतरी हो जाती है.

इसके बजाय, एक अच्छा डिज़ाइन यह है कि आप दूसरे अलार्म को रैंडम तरीके से चुने गए समय पर सेट कर दें. जब यह दूसरा अलार्म ट्रिगर होता है, तो यह ऐप्लिकेशन अपनी ज़रूरत के मुताबिक किसी भी एपीआई को कॉल करता है और नतीजे सेव करता है. ऐप्लिकेशन, एपीआई को फिर से कॉल करने के बजाय, पहले से सेव किए गए नतीजों का इस्तेमाल करता है, ताकि उसके डिसप्ले को अपडेट होते ही अपडेट किया जा सके. इस तरीके से, एपीआई कॉल की प्रोसेस समय के साथ बराबर हो जाती है. इसके अलावा, डिसप्ले अपडेट होने के दौरान, एपीआई कॉल रेंडर होने में देरी नहीं करते.

मिनट की शुरुआत के अलावा, सिंक करने के दूसरे आम समय भी हैं, जिन्हें टारगेट न करने का आपको ध्यान रखना चाहिए. ये समय एक घंटे की शुरुआत में और हर दिन की आधी रात की शुरुआत में होते हैं.