1. Google Workspace API का इस्तेमाल करना
इस कोडलैब में, Google Workspace (पहले इसे G Suite के नाम से जाना जाता था) के एचटीटीपी पर आधारित RESTful API इस्तेमाल करने के बारे में बताया गया है. उदाहरण को Python में दिखाया जाएगा, ताकि इसे आसानी से समझा जा सके और यह उपलब्ध हो. हालांकि, अपनी पसंद की डेवलपमेंट लैंग्वेज का इस्तेमाल भी किया जा सकता है. आपको शुरुआती विषयों के बारे में जानकारी मिलेगी. जैसे, प्रोजेक्ट बनाने/मैनेज करने के लिए डेवलपर कंसोल का इस्तेमाल कैसे करें, अनुमति के क्रेडेंशियल कैसे पाएं, और एपीआई क्लाइंट लाइब्रेरी कैसे इंस्टॉल करें. ज़रूरी काम पूरा होने के बाद, आपको एक ऐसा ऐप्लिकेशन लिखना होगा जो Google Drive के एपीआई का इस्तेमाल करके, आपकी Google Drive में मौजूद पहली 100 फ़ाइलों और फ़ोल्डर को दिखा सके.
आपको क्या सीखने को मिलेगा
- Google/Cloud Developers Console का इस्तेमाल करके प्रोजेक्ट बनाना
- अपने ऐप्लिकेशन में OAuth2 ऐप्लिकेशन क्रेडेंशियल पाना और उनका इस्तेमाल करना
- Google APIs की क्लाइंट लाइब्रेरी इस्तेमाल करने के बारे में जानकारी
- Google और Google Workspace के एपीआई का इस्तेमाल करके ऐप्लिकेशन लिखना
- Google Drive API की मदद से, फ़ाइल और फ़ोल्डर की जानकारी पाना
आपको किन चीज़ों की ज़रूरत होगी
- इंटरनेट और वेब ब्राउज़र का ऐक्सेस
- Google खाता (Google Workspace खातों के लिए, एडमिन की अनुमति ज़रूरी हो सकती है)
- Linux और Mac OS X जैसे POSIX के साथ काम करने वाले सिस्टम के बारे में जानकारी
- कोड एडिटर या शेल कमांड का इस्तेमाल करके, सोर्स फ़ाइलें बनाने की सुविधा.
- Python (2 या 3) की बुनियादी जानकारी होनी चाहिए. हालांकि, किसी भी ऐसी भाषा का इस्तेमाल किया जा सकता है जो इसके साथ काम करती हो
- आपके Google Drive में मौजूद कुछ फ़ाइलें और/या फ़ोल्डर
2. सर्वे
इस कोडलैब ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?
Google Workspace के डेवलपर टूल और एपीआई इस्तेमाल करने के अपने अनुभव को आप क्या रेटिंग देंगे?
3. खास जानकारी
इस कोडलैब में, आपको इनके बारे में जानकारी मिलेगी:
- Python के लिए Google APIs क्लाइंट लाइब्रेरी डाउनलोड करना
- Google/Cloud Developers Console में नया प्रोजेक्ट बनाना
- अपने ऐप्लिकेशन के लिए ज़रूरी क्रेडेंशियल पाना
- Google Drive API को ऐक्सेस करने के लिए, उन क्रेडेंशियल का इस्तेमाल करें
अगर आपको Python का इस्तेमाल नहीं करना है, तो अपनी पसंद के डेवलपमेंट टूल में कोडलैब को लागू किया जा सकता है. इसके साथ काम करने वाली भाषाओं की क्लाइंट लाइब्रेरी यहां उपलब्ध हैं. साथ ही, Python के उदाहरणों को (एक्ज़ीक्यूटेबल) स्यूडोकोड के तौर पर इस्तेमाल किया जा सकता है.
4. Python एनवायरमेंट की पुष्टि करना
इस कोडलैब के लिए, आपको Python भाषा का इस्तेमाल करना होगा. हालांकि, Google APIs की क्लाइंट लाइब्रेरी कई भाषाओं के साथ काम करती हैं. इसलिए, अपने पसंदीदा डेवलपमेंट टूल में इसके जैसा कुछ बनाएं और Python को सिर्फ़ स्यूडोकोड के तौर पर इस्तेमाल करें. खास तौर पर, यह कोडलैब Python 2 और 3 के साथ काम करता है. हालांकि, हमारा सुझाव है कि आप जल्द से जल्द 3.x पर माइग्रेट कर लें.
Cloud Shell, उपयोगकर्ताओं के लिए Cloud Console से सीधे तौर पर उपलब्ध है. इसके लिए, लोकल डेवलपमेंट एनवायरमेंट की ज़रूरत नहीं होती. इसलिए, इस ट्यूटोरियल को वेब ब्राउज़र की मदद से पूरी तरह से क्लाउड में किया जा सकता है. अगर आपको GCP प्रॉडक्ट और एपीआई का इस्तेमाल करके डेवलपमेंट करना है या जारी रखना है, तो Cloud Shell आपके लिए बहुत काम का है. खास तौर पर इस कोडलैब के लिए, Cloud Shell में Python के दोनों वर्शन पहले से इंस्टॉल हैं.
Cloud Shell में IPython भी इंस्टॉल है... यह एक हायर-लेवल इंटरैक्टिव Python इंटरप्रेटर है. हम इसका इस्तेमाल करने का सुझाव देते हैं. खास तौर पर, अगर आप डेटा साइंस या मशीन लर्निंग कम्यूनिटी का हिस्सा हैं. अगर ऐसा है, तो IPython, Jupyter Notebooks और Colab के लिए डिफ़ॉल्ट इंटरप्रेटर है. Colab, Google Research की ओर से होस्ट की जाने वाली Jupyter Notebooks हैं.
IPython, सबसे पहले Python 3 इंटरप्रेटर को प्राथमिकता देता है. हालांकि, अगर 3.x उपलब्ध नहीं है, तो यह Python 2 पर वापस आ जाता है. IPython को Cloud Shell से ऐक्सेस किया जा सकता है. हालांकि, इसे लोकल डेवलपमेंट एनवायरमेंट में भी इंस्टॉल किया जा सकता है. ^D (Ctrl-d) दबाकर बाहर निकलें और बाहर निकलने के लिए ऑफ़र स्वीकार करें. ipython से शुरू होने वाले आउटपुट का उदाहरण यहां दिया गया है:
$ ipython Python 3.7.3 (default, Mar 4 2020, 23:11:43) Type 'copyright', 'credits' or 'license' for more information IPython 7.13.0 -- An enhanced Interactive Python. Type '?' for help. In [1]:
अगर आपको IPython का इस्तेमाल नहीं करना है, तो स्टैंडर्ड Python इंटरैक्टिव इंटरप्रेटर (Cloud Shell या आपका लोकल डेवलपमेंट एनवायरमेंट) का इस्तेमाल किया जा सकता है. इससे कोई समस्या नहीं होगी. साथ ही, ^D का इस्तेमाल करके भी बाहर निकला जा सकता है:
$ python Python 2.7.13 (default, Sep 26 2018, 18:42:22) [GCC 6.3.0 20170516] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> $ python3 Python 3.7.3 (default, Mar 10 2020, 02:33:39) [GCC 6.3.0 20170516] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
इस कोडलैब में यह भी माना गया है कि आपके पास pip इंस्टॉलेशन टूल (Python पैकेज मैनेजर और डिपेंडेंसी रिज़ॉल्वर) है. यह 2.7.9+ या 3.4+ वर्शन के साथ बंडल किया गया है. अगर आपके पास Python का पुराना वर्शन है, तो इंस्टॉलेशन के निर्देशों के लिए यह गाइड देखें. आपके पास sudo या सुपरयूज़र का ऐक्सेस होना चाहिए. हालांकि, ऐसा हमेशा नहीं होता. pip को Python के किसी खास वर्शन पर चलाने के लिए, pip2 या pip3 का इस्तेमाल भी किया जा सकता है.
इस कोडलैब के बाकी हिस्से में, यह माना गया है कि Python 3 का इस्तेमाल किया जा रहा है. अगर Python 2 के निर्देश, 3.x से काफ़ी अलग हैं, तो उनके लिए अलग से निर्देश दिए जाएंगे.
*वर्चुअल एनवायरमेंट बनाना और उनका इस्तेमाल करना
यह सेक्शन वैकल्पिक है. इसकी ज़रूरत सिर्फ़ उन लोगों को है जिन्हें इस कोडलैब के लिए वर्चुअल एनवायरमेंट का इस्तेमाल करना है. इसके बारे में, ऊपर दिए गए चेतावनी वाले साइडबार में बताया गया है. अगर आपके कंप्यूटर पर सिर्फ़ Python 3 है, तो my_env नाम का वर्चुअल एनवायरमेंट बनाने के लिए, यह कमांड जारी करें. अगर चाहें, तो कोई दूसरा नाम भी चुना जा सकता है:
virtualenv my_env
हालांकि, अगर आपके कंप्यूटर पर Python 2 और 3, दोनों हैं, तो हमारा सुझाव है कि आप Python 3 virtualenv इंस्टॉल करें. इसके लिए, -p flag का इस्तेमाल इस तरह करें:
virtualenv -p python3 my_env
यहां दिए गए तरीके से, अभी-अभी बनाए गए virtualenv को "चालू करें":
source my_env/bin/activate
पुष्टि करें कि आप एनवायरमेंट में हैं.इसके लिए, देखें कि क्या आपके शेल प्रॉम्प्ट से पहले अब आपके एनवायरमेंट का नाम दिख रहा है. जैसे,
(my_env) $
अब आपको pip install ज़रूरी पैकेज इंस्टॉल करने, इस एनवायरमेंट में कोड चलाने वगैरह की सुविधा मिलनी चाहिए. इसका एक और फ़ायदा यह है कि अगर आपने इसे पूरी तरह से गड़बड़ कर दिया है, तो आपके पास इस पूरे एनवायरमेंट को हटाने का विकल्प होता है. इससे आपके सिस्टम के बाकी हिस्सों पर कोई असर नहीं पड़ता.
5. Python के लिए Google APIs क्लाइंट लाइब्रेरी इंस्टॉल करना
इस कोडलैब के लिए, Python के लिए Google API की क्लाइंट लाइब्रेरी का इस्तेमाल करना ज़रूरी है. इसलिए, इसे इंस्टॉल करना आसान है. इसके अलावा, हो सकता है कि आपको कुछ भी न करना पड़े.
हमने आपको पहले सुझाव दिया था कि आप आसानी से काम करने के लिए, Cloud Shell का इस्तेमाल करें. क्लाउड में मौजूद वेब ब्राउज़र से, पूरा ट्यूटोरियल देखा जा सकता है. Cloud Shell का इस्तेमाल करने की एक और वजह यह है कि इसमें कई लोकप्रिय डेवलपमेंट टूल और ज़रूरी लाइब्रेरी पहले से प्री-इंस्टॉल होती हैं.
*क्लाइंट लाइब्रेरी इंस्टॉल करना
(ज़रूरी नहीं) अगर Cloud Shell या ऐसे लोकल एनवायरमेंट का इस्तेमाल किया जा रहा है जहां आपने पहले से ही क्लाइंट लाइब्रेरी इंस्टॉल की हैं, तो इस चरण को छोड़ा जा सकता है. आपको ऐसा सिर्फ़ तब करना होगा, जब ऐप्लिकेशन को स्थानीय तौर पर डेवलप किया जा रहा हो और आपने उन्हें इंस्टॉल न किया हो या आपको यह पक्का न हो कि आपने उन्हें इंस्टॉल किया है या नहीं. इसे इंस्टॉल करने का सबसे आसान तरीका है pip (या pip3) का इस्तेमाल करना. अगर ज़रूरी हो, तो pip को अपडेट करने के लिए भी इसका इस्तेमाल किया जा सकता है:
pip install -U pip google-api-python-client oauth2client
इंस्टॉल किए जाने की पुष्टि करना
इस कमांड से क्लाइंट लाइब्रेरी के साथ-साथ, उससे जुड़े सभी पैकेज भी इंस्टॉल हो जाते हैं. चाहे Cloud Shell का इस्तेमाल किया जा रहा हो या अपने एनवायरमेंट का, यह पुष्टि करें कि क्लाइंट लाइब्रेरी इंस्टॉल है. इसके लिए, ज़रूरी पैकेज इंपोर्ट करें और पुष्टि करें कि इंपोर्ट करने में कोई गड़बड़ी नहीं हुई है और न ही कोई आउटपुट मिला है:
python3 -c "import googleapiclient, httplib2, oauth2client"
अगर Cloud Shell से Python 2 का इस्तेमाल किया जाता है, तो आपको यह चेतावनी मिलेगी कि अब यह काम नहीं करता:
******************************************************************************* Python 2 is deprecated. Upgrade to Python 3 as soon as possible. See https://cloud.google.com/python/docs/python2-sunset To suppress this warning, create an empty ~/.cloudshell/no-python-warning file. The command will automatically proceed in seconds or on any key. *******************************************************************************
जब इंपोर्ट "टेस्ट" कमांड को बिना किसी गड़बड़ी के चलाया जा सके, तब Google API का इस्तेमाल शुरू किया जा सकता है!
खास जानकारी
यह एक शुरुआती कोडलैब है. इसलिए, यह माना गया है कि आपने Google और Google Workspace API का इस्तेमाल पहले कभी नहीं किया है. अगर आपको प्रोजेक्ट बनाने और उपयोगकर्ता के ऑथराइज़ेशन "OAuth क्लाइंट आईडी" बनाने का अनुभव है. अगर ऐसा है, तो नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. इसके अलावा, नया OAuth क्लाइंट आईडी बनाएं या किसी मौजूदा OAuth क्लाइंट आईडी का फिर से इस्तेमाल करें. इसके बाद, अगले दो मॉड्यूल छोड़ दें और सीधे "Drive फ़ाइलों और फ़ोल्डर ऐप्लिकेशन को दिखाना" पर जाएं. इसके अलावा, "DevConsole का ऐडवांस इस्तेमाल" पर जाकर, उन चरणों की समीक्षा करें.
6. Cloud Console में प्रोजेक्ट के बारे में बताना
Google API का इस्तेमाल करने वाले ऐप्लिकेशन के लिए, प्रोजेक्ट की ज़रूरत होती है. इन्हें Google Cloud Developers Console या "devconsole" में मैनेज किया जाता है. इस कोडलैब में, हम सिर्फ़ Google Drive API का इस्तेमाल करने वाले हैं. इसलिए, हमारे पास एक मैजिक लिंक है (पहले चरण में नीचे दिया गया है). यह लिंक:
- इससे आपको devconsole पर ले जाया जाता है
- इसमें नया प्रोजेक्ट बनाने (या कोई मौजूदा प्रोजेक्ट चुनने) का तरीका बताया गया है. साथ ही,
- यह कुकी, Drive API को अपने-आप चालू करती है
चलिए, शुरू करते हैं!
- console.developers.google.com/start/api?id=drive पर जाएं और अपने Google खाते में लॉग इन करें.
- अगर आपके पास अब तक कोई प्रोजेक्ट नहीं है, तो आपको Google APIs की सेवा की शर्तें स्वीकार करने के लिए यह स्क्रीन दिखेगी:
शर्तों को स्वीकार करने के बाद, "मेरा प्रोजेक्ट" नाम का एक नया प्रोजेक्ट बन जाएगा. साथ ही, Drive API अपने-आप चालू हो जाएगा. 3. अगर आपने पहले से ही कोई प्रोजेक्ट बनाया है (शायद आपका पिछला कोडलैब?), तो आपको यह स्क्रीन दिखेगी:
प्रोजेक्ट बनाएं पुलडाउन पर क्लिक करने पर, कोई मौजूदा प्रोजेक्ट चुनें या नया प्रोजेक्ट बनाएं.
नया या मौजूदा प्रोजेक्ट चुनने के बाद, Drive API आपके लिए अपने-आप चालू हो जाएगा. 4. इस पुष्टि से आपको पता चलेगा कि Drive API चालू हो गया है:
5. अगले चरण पर जाने के लिए, क्रेडेंशियल पर जाएं पर क्लिक करें.
7. *एपीआई अनुरोधों को अनुमति देना (उपयोगकर्ता की अनुमति)
अगर आपने पहले ही उपयोगकर्ता खाते की पुष्टि के क्रेडेंशियल बना लिए हैं और आपको इस प्रोसेस के बारे में पता है, तो इस सेक्शन को स्किप किया जा सकता है. यह सेवा खाते को अनुमति देने से अलग है. इसकी तकनीक अलग होती है. इसलिए, कृपया नीचे दिया गया तरीका अपनाएं.
अनुमति के बारे में जानकारी (साथ ही, कुछ पुष्टि करने के तरीके)
एपीआई से अनुरोध करने के लिए, आपके ऐप्लिकेशन के पास सही अनुमति होनी चाहिए. पुष्टि करना भी इसी तरह का शब्द है. इससे लॉगिन क्रेडेंशियल के बारे में पता चलता है. जब लॉगिन और पासवर्ड की मदद से अपने Google खाते में लॉगिन किया जाता है, तब आपकी पुष्टि की जाती है. पुष्टि हो जाने के बाद, अगला चरण यह तय करना होता है कि आपको या आपके कोड को डेटा ऐक्सेस करने की अनुमति है या नहीं. जैसे, Cloud Storage पर मौजूद ब्लॉब फ़ाइलें या Google Drive पर मौजूद किसी उपयोगकर्ता की निजी फ़ाइलें.
Google APIs, कई तरह की अनुमतियों के साथ काम करते हैं. हालांकि, Google Workspace API का इस्तेमाल करने वाले लोगों के लिए, उपयोगकर्ता की अनुमति सबसे आम है. ऐसा इसलिए, क्योंकि इस कोडलैब में दिया गया उदाहरण ऐप्लिकेशन, असली उपयोगकर्ताओं का डेटा ऐक्सेस करता है. उन उपयोगकर्ताओं को आपके ऐप्लिकेशन को अपना डेटा ऐक्सेस करने की अनुमति देनी होगी. इसका मतलब है कि आपके कोड को उपयोगकर्ता खाते के OAuth2 क्रेडेंशियल पाने होंगे.
उपयोगकर्ता की पुष्टि करने के लिए OAuth2 क्रेडेंशियल पाने के लिए, एपीआई मैनेजर पर वापस जाएं और बाएं नेविगेशन में मौजूद "क्रेडेंशियल" टैब चुनें:
इस पेज पर, आपको अपने सभी क्रेडेंशियल तीन अलग-अलग सेक्शन में दिखेंगे:
पहला एपीआई कुंजियों के लिए, दूसरा OAuth 2.0 क्लाइंट आईडी के लिए,और तीसरा OAuth2 सेवा खातों के लिए है. हम बीच वाले का इस्तेमाल कर रहे हैं.
क्रेडेंशियल बनाना
क्रेडेंशियल पेज पर, सबसे ऊपर मौजूद + क्रेडेंशियल बनाएं बटन पर क्लिक करें. इसके बाद, आपको एक डायलॉग दिखेगा. इसमें "OAuth क्लाइंट आईडी:" चुनें:
अगली स्क्रीन पर, आपके पास दो विकल्प होते हैं: अपने ऐप्लिकेशन की अनुमति के लिए "सहमति स्क्रीन" कॉन्फ़िगर करना और ऐप्लिकेशन का टाइप चुनना:
अगर आपने सहमति लेने के लिए स्क्रीन सेट नहीं की है, तो आपको कंसोल में चेतावनी दिखेगी. आपको अब ऐसा करना होगा. (अगर आपने पहले ही सहमति लेने के लिए स्क्रीन सेट अप कर ली है, तो इन चरणों को छोड़ दें.)
ऐसी स्क्रीन जहां OAuth के लिए सहमति दी जाती है
"सहमति स्क्रीन कॉन्फ़िगर करें" पर क्लिक करें. यहां आपको "बाहरी" ऐप्लिकेशन चुनना होगा. अगर आप Google Workspace [पहले "Google Workspace"] के ग्राहक हैं, तो "इंटरनल" ऐप्लिकेशन चुनें:
ध्यान दें कि इस अभ्यास के लिए, इससे कोई फ़र्क़ नहीं पड़ता कि आपने कौनसी भाषा चुनी है, क्योंकि आपको अपना कोडलैब सैंपल पब्लिश नहीं करना है. ज़्यादातर लोग "बाहरी" विकल्प चुनेंगे, ताकि उन्हें ज़्यादा जानकारी वाली स्क्रीन पर ले जाया जा सके. हालांकि, आपको सिर्फ़ सबसे ऊपर मौजूद "ऐप्लिकेशन का नाम" फ़ील्ड भरना होगा:
इस समय आपको सिर्फ़ ऐप्लिकेशन के नाम की ज़रूरत है. इसलिए, ऐसा नाम चुनें जो आपके कोडलैब को दिखाता हो. इसके बाद, सेव करें पर क्लिक करें.
OAuth क्लाइंट आईडी बनाना (उपयोगकर्ता खाते की पुष्टि)
अब OAuth2 क्लाइंट आईडी बनाने के लिए, क्रेडेंशियल टैब पर वापस जाएं. यहां आपको कई तरह के OAuth क्लाइंट आईडी दिखेंगे, जिन्हें बनाया जा सकता है:
हम एक कमांड-लाइन टूल डेवलप कर रहे हैं, जो अन्य है. इसलिए, इसे चुनें. इसके बाद, बनाएं बटन पर क्लिक करें. उस ऐप्लिकेशन के हिसाब से क्लाइंट आईडी का नाम चुनें जिसे आपको बनाना है. इसके अलावा, डिफ़ॉल्ट नाम का इस्तेमाल भी किया जा सकता है. डिफ़ॉल्ट नाम आम तौर पर, "अन्य क्लाइंट N" होता है.
आपके क्रेडेंशियल सेव किए जा रहे हैं
- नए क्रेडेंशियल वाला डायलॉग बॉक्स दिखता है; इसे बंद करने के लिए, ठीक है पर क्लिक करें
- क्रेडेंशियल पेज पर वापस जाएं. इसके बाद, नीचे की ओर स्क्रोल करके "OAuth2 क्लाइंट आईडी" सेक्शन पर जाएं. यहां, आपको अपने नए क्लाइंट आईडी के सबसे दाईं ओर नीचे की ओर, डाउनलोड आइकॉन
दिखेगा. इस पर क्लिक करें.
- इससे
client_secret-LONG-HASH-STRING.apps.googleusercontent.com.jsonनाम की फ़ाइल को सेव करने के लिए, एक डायलॉग बॉक्स खुलता है. यह फ़ाइल, आपके डाउनलोड फ़ोल्डर में सेव होती है. हमारा सुझाव है कि आप इसे छोटा करकेclient_secret.jsonजैसा कोई आसान नाम दें. यह नाम, सैंपल ऐप्लिकेशन में इस्तेमाल किया गया है. इसके बाद, इसे उस डायरेक्ट्री/फ़ोल्डर में सेव करें जहां आपको इस कोडलैब में सैंपल ऐप्लिकेशन बनाना है.
खास जानकारी
क्रेडेंशियल मिलने के बाद, अब अपने ऐप्लिकेशन से Drive API को ऐक्सेस किया जा सकता है. ध्यान रखें कि OAuth क्लाइंट आईडी का मकसद यह है कि आपके उपयोगकर्ताओं को आपके ऐप्लिकेशन को Google Drive में अपने डेटा को ऐक्सेस करने की अनुमति देनी होगी.
NOTE: प्रोजेक्ट बनाने, एपीआई चालू करने, और क्रेडेंशियल पाने के बारे में ज़्यादा जानकारी, इस कोडलैब के खत्म होने के बाद उपलब्ध होगी. यह जानकारी, ऊपर दिए गए "विज़र्ड" का इस्तेमाल किए बिना, मैन्युअल तरीके से उपलब्ध होगी.
8. Drive में मौजूद फ़ाइलों और फ़ोल्डर को ऐप्लिकेशन में दिखाना
अपने लोकल डेवलपमेंट एनवायरमेंट या Cloud Shell में, उसी डायरेक्ट्री में client_id.json नाम की एक नई Python फ़ाइल बनाएं जहां आपकी क्रेडेंशियल फ़ाइल मौजूद है. इसके बाद, नीचे दिए गए कोड की लाइनें जोड़ें:drive_list.py
from __future__ import print_function
from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools
SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
files = DRIVE.files().list().execute().get('files', [])
for f in files:
print(f['name'], f['mimeType'])
ऐप्लिकेशन का स्ट्रक्चर
इस ऐप्लिकेशन में तीन मुख्य सेक्शन हैं:
- लाइब्रेरी की सुविधाओं को इस्तेमाल करने के लिए, Python इंपोर्ट
- ऐप्लिकेशन क्रेडेंशियल पाना
- यह कुकी, उपयोगकर्ता के Google Drive में मौजूद फ़ाइल और फ़ोल्डर के नाम और MIME टाइप को फ़ेच करती है और उन्हें दिखाती है
NOTE: इस कोडलैब के खत्म होने के बाद, कोड के बारे में ज़्यादा जानकारी और लाइन-बाय-लाइन एक्सप्लेनेशन देखा जा सकता है.
ऐप्लिकेशन चलाना
इस फ़ाइल को drive_list.py जैसा कोई नाम दें. पहली बार स्क्रिप्ट चलाने पर, उसके पास Drive पर मौजूद उपयोगकर्ता की फ़ाइलों (आपकी) को ऐक्सेस करने की अनुमति नहीं होगी. एक्ज़ीक्यूशन रुकने पर, आउटपुट ऐसा दिखता है:
$ python3 ./drive_list.py /usr/local/lib/python3.6/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access storage.json: No such file or directory warnings.warn(_MISSING_FILE_MESSAGE.format(filename)) Your browser has been opened to visit: https://accounts.google.com/o/oauth2/auth?client_id=LONG-STRING.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly.metadata&access_type=offline&response_type=code If your browser is on a different machine then exit and re-run this application with the command-line parameter --noauth_local_webserver
लोकल डेवलपमेंट एनवायरमेंट से
ब्राउज़र विंडो खुलने और OAuth2 की अनुमतियों वाला डायलॉग बॉक्स दिखने पर, कमांड-लाइन स्क्रिप्ट को रोक दिया जाता है:

यहां ऐप्लिकेशन, उपयोगकर्ता से उन अनुमतियों के लिए पूछता है जिनका अनुरोध कोड कर रहा है. ऐसा SCOPES वैरिएबल के ज़रिए किया जाता है. इस मामले में, उपयोगकर्ता के Google Drive से फ़ाइल का मेटाडेटा देखने की अनुमति दी गई है. हां, आपके कोड में ये अनुमति के स्कोप, यूआरआई के तौर पर दिखते हैं. हालांकि, इन्हें OAuth2 फ़्लो डायलॉग विंडो में, आपकी स्थान-भाषा के हिसाब से तय की गई भाषा में अनुवादित किया जाता है. उपयोगकर्ता को अनुरोध की गई अनुमतियों के लिए, साफ़ तौर पर अनुमति देनी होगी. ऐसा न करने पर, कोड का "रन फ़्लो" वाला हिस्सा एक अपवाद देगा और स्क्रिप्ट आगे नहीं बढ़ेगी.
NOTE: कुछ उपयोगकर्ताओं के पास एक से ज़्यादा ब्राउज़र होते हैं. ऐसा हो सकता है कि अनुमति देने का अनुरोध, उनके पसंदीदा ब्राउज़र के बजाय किसी दूसरे ब्राउज़र पर दिख रहा हो. अगर ऐसा है, तो जिस ब्राउज़र विंडो का इस्तेमाल नहीं करना है उससे पूरा यूआरएल कॉपी करें. इसके बाद, जिस ब्राउज़र का इस्तेमाल करना है उसके पता बार में उसे चिपकाएं.
Cloud Shell से
अगर आपने ध्यान नहीं दिया और Cloud Shell में प्रोग्राम चलाया, तो कोई ब्राउज़र विंडो नहीं खुलेगी. इस वजह से, आपको समस्या हो सकती है. आपको यह एहसास हुआ कि सबसे नीचे मौजूद गड़बड़ी की जानकारी देने वाला मैसेज आपके लिए था... यह वाला:
If your browser is on a different machine then exit and re-run this application with the command-line parameter --noauth_local_webserver
इस तरह से चलाने पर, आपको यह आउटपुट मिलेगा:
$ python3 drive_list.py --noauth_local_webserver /usr/local/lib/python3.7/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access storage.json: No such file or directory warnings.warn(_MISSING_FILE_MESSAGE.format(filename)) Go to the following link in your browser: https://accounts.google.com/o/oauth2/auth?client_id=xxx.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly.metadata&access_type=offline&response_type=code Enter verification code:
निर्देशों का पालन करने और उस यूआरएल के साथ किसी अन्य ब्राउज़र टैब पर जाने से, आपको स्थानीय डेवलपमेंट एनवायरमेंट के लिए ऊपर बताए गए तरीके के जैसा अनुभव मिलेगा. मुख्य अंतर यह है कि आखिर में आपको एक और स्क्रीन दिखेगी. इसमें पुष्टि करने वाला कोड होगा, जिसे आपको Cloud Shell में डालना होगा:

इस कोड को कट करके, टर्मिनल विंडो में चिपकाएं.
खास जानकारी
जब उपयोगकर्ता 'अनुमति दें' पर क्लिक करता है और/या पुष्टि करने वाले कोड को प्रॉम्प्ट में चिपकाता है, तो ऐप्लिकेशन चलता रहेगा. इसलिए, आपको Drive की फ़ाइलों/फ़ोल्डर और उनके MIME टाइप का आउटपुट दिखेगा. यहां हमारे किसी टेस्ट खाते का एक उदाहरण दिया गया है:
$ python3 ./drive_list.py Travel expenses application/vnd.google-apps.spreadsheet Gmail Add-ons codelab application/vnd.google-apps.script Google Workspace Developer Intro application/vnd.google-apps.presentation Baseball Sheets application/vnd.google-apps.folder My Resume application/vnd.google-apps.document . . .
बार-बार अनुरोध करने पर, आपको अनुमति देने के लिए नहीं कहा जाएगा. ऐसा इसलिए, क्योंकि अनुमति देने वाली लाइब्रेरी ने इसे कैश मेमोरी में सेव कर लिया है. इसलिए, आपको सीधे आउटपुट दिखेगा. क्या आपको पहली बार टर्मिनल में अपने दस्तावेज़ देखकर खुशी नहीं हुई? हमें भी ऐसा लगता है!
9. नतीजा
अब आपके पास Drive API की अन्य सुविधाओं के बारे में ज़्यादा जानने या Google Workspace (Gmail, Google Docs, Sheets, Slides, Calendar) और Google के अन्य एपीआई (Maps, Analytics, YouTube वगैरह) के बारे में जानने का विकल्प है. आखिरी क्विज़ तक पहुंचने के लिए बधाई!
इस कोडलैब में दिखाया गया कोड, GitHub पर भी उपलब्ध है. इसे github.com/googlecodelabs/gsuite-apis-intro पर देखा जा सकता है. (हमारा मकसद इस कोडलैब को रेपो के साथ सिंक रखना है.) क्या आप इसे खेलने के लिए तैयार हैं? इस कोडलैब में शामिल कॉन्टेंट के बारे में ज़्यादा जानने के लिए, यहाँ दिए गए संसाधनों को ऐक्सेस किया जा सकता है. इसके अलावा, अगर आपको Google की टेक्नोलॉजी को प्रोग्राम के हिसाब से ऐक्सेस करने के अन्य तरीके जानने हैं, तो भी इन संसाधनों को ऐक्सेस किया जा सकता है.
जैसा कि पहले बताया गया है, अगर आप Python डेवलपर नहीं हैं, तो हम आपको इस कोडलैब के उदाहरण को अपनी पसंदीदा डेवलपमेंट भाषा में फिर से करने का न्योता देते हैं. इस सुविधा के साथ काम करने वाली भाषाओं के लिए क्लाइंट लाइब्रेरी यहाँ उपलब्ध हैं.
अन्य स्टडी
अब आपको Drive API का कुछ अनुभव मिल गया है. यहां कुछ ऐसे सुझाव दिए गए हैं जिनसे आपको अपनी स्किल को और बेहतर बनाने में मदद मिलेगी:
- ZIP फ़ाइलें: एक ऐसा ऐप्लिकेशन लिखें जो Drive पर कई ZIP संग्रहों का बैक अप लेता हो. साथ ही, उन्हें तुरंत अनकंप्रेस करता हो, ताकि हर ZIP फ़ाइल का नाम उस फ़ोल्डर का नाम हो जिसमें वे फ़ाइलें जाती हैं. ज़्यादा क्रेडिट पाने के लिए: Drive फ़ोल्डर में मौजूद अन्य फ़ोल्डर में एम्बेड किए गए ZIP फ़ाइलों के अंदर, रिकर्सिव ZIP संग्रहों का इस्तेमाल किया जा सकता है. अगर आपको समस्या हल करने में परेशानी हो रही है, तो Node.js का यह सैंपल ऐप्लिकेशन देखें.
- फ़ोटो एल्बम: फ़ोटो एल्बम जनरेट करने वाले टूल के बारे में जानकारी लिखो. यह टूल, Google Drive में एक साथ कई इमेज अपलोड करता है. साथ ही, टाइमस्टैंप और जियोलोकेशन के हिसाब से उन्हें अलग-अलग फ़ोल्डर में व्यवस्थित करता है. ज़्यादा क्रेडिट पाने के लिए: इमेज में बदलाव करने वाली ओपन सोर्स लाइब्रेरी ढूंढें और हर फ़ोल्डर में मौजूद सभी फ़ोटो को एक साथ जोड़ें. इससे, आपको उन इवेंट के बारे में पता चलेगा जिनमें आपने हिस्सा लिया था. जैसे, कोई यात्रा, डिनर वगैरह.
- GCP एक्सप्लोर करें: एक ऐसा ऐप्लिकेशन लिखें जो Google Workspace और Google Cloud Platform (GCP) को एक साथ कनेक्ट करता हो. एक ऐसा टूल लिखो जो Google Drive से इमेज फ़ाइलों का बैकअप लेकर, Google Cloud Storage (GCS) में सेव करे. GCS, "क्लाउड में फ़ाइल स्टोरेज" का एक और समाधान है. मानें या न मानें, GCS का इस्तेमाल Drive से ज़्यादा आसान होगा. ऐसा इसलिए, क्योंकि इसमें बेहतर क्लाइंट लाइब्रेरी होती हैं.
- विश्लेषण करना और रिकॉर्ड करना: अपने समाधान को तीसरे चरण तक ले जाएं. इसके लिए, बैक अप ली गई हर इमेज का विश्लेषण करें. इसके लिए, इमेज को Google Cloud Vision API को पास करें. साथ ही, उन इमेज में API को दिखने वाली चीज़ों के सबसे ज़्यादा (3, 5, 10) "लेबल" पाएं. हर इमेज के लिए, Google शीट में एक लाइन लिखें. इसमें Cloud Vision से मिले विश्लेषण के साथ-साथ, GCS पर इमेज की बैक अप की गई जगह की जानकारी भी शामिल करें. अगर आपको समस्या हल करने में परेशानी हो रही है, तो यह Python कोडलैब देखें.
10. अतिरिक्त संसाधन
दस्तावेज़
- Google Drive API का दस्तावेज़ (REST API और Android नेटिव SDK/API)
- Google Workspace के अन्य एपीआई का दस्तावेज़
- Google के अन्य एपीआई से जुड़ा दस्तावेज़
- Google APIs की क्लाइंट लाइब्रेरी
- OAuth2 दस्तावेज़
मिलते-जुलते और सामान्य वीडियो
- नए Google API प्रोजेक्ट बनाना ( ब्लॉग पोस्ट और वीडियो)
- Python ऑथराइज़ेशन के छोटे-मोटे बदलाव वाले कोड की समीक्षा ( वीडियो)
- Google Drive में अपनी फ़ाइलें लिस्ट करना ( वीडियो, ब्लॉग पोस्ट)
- Google Drive API वीडियो लाइब्रेरी
- Launchpad Online वीडियो सीरीज़ (इससे पहले...)
- Google Workspace Dev Show वीडियो सीरीज़
खबरें और अपडेट
- Google Workspace डेवलपर ब्लॉग
- Google Workspace डेवलपर Twitter (@GSuiteDevs)
- Google Workspace डेवलपर का हर महीने का न्यूज़लेटर
अन्य कोडलैब
आसान लेवल
- [Apps Script] Google Apps Script के बारे में जानकारी
इंटरमीडिएट लेवल
- [Apps Script] CLASP Apps Script command-line tool
- [Apps Script] Gmail ऐड-ऑन
- [Apps Script] Docs ऐड-ऑन और GCP Natural Language API
- [Apps Script] Hangouts Chat बॉट फ़्रेमवर्क
- [REST API] कस्टम रिपोर्टिंग टूल (Sheets API)
- [REST API] Github लाइसेंस के लिए BigQuery Analyzer की कस्टम स्लाइड जनरेट करने की सुविधा (Slides+BigQuery API)
बेहतर
- [REST API] क्लाउड इमेज प्रोसेसिंग वर्कफ़्लो (Drive, Cloud Storage, Cloud Vision, Sheets API)
रेफ़रंस ऐप्लिकेशन
- Markdown-to-Google Slides converter (Slides REST API)
11. *ऐप्लिकेशन के बारे में पूरी जानकारी
यह सेक्शन ज़रूरी नहीं है. सेशन खत्म होने के बाद, इसका इस्तेमाल खुद से पढ़ाई करने के लिए किया जा सकता है. इससे, किसी भी तरह की कमी को पूरा किया जा सकता है या आगे की रिसर्च की जा सकती है.
लाइब्रेरी की सुविधाओं को इस्तेमाल करने के लिए, Python इंपोर्ट
from __future__ import print_function
from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools
- पहले
importस्टेटमेंट से, इस कोड को Python 2 पर चलाने की सुविधा मिलती है. अगर सिर्फ़ Python 3 का इस्तेमाल किया जा रहा है, तो इसे पूरी तरह से हटाया जा सकता है. - Python स्टाइल गाइडलाइन के मुताबिक, स्टैंडर्ड लाइब्रेरी और तीसरे पक्ष के मॉड्यूल के इंपोर्ट को अलग-अलग किया जाना चाहिए. इसलिए, खाली लाइन का इस्तेमाल किया जाता है.
- अगले तीन इंपोर्ट, Google APIs क्लाइंट लाइब्रेरी से ज़रूरी क्लास और फ़ंक्शन लाते हैं... इस ऐप्लिकेशन को लिखने के लिए, इन सभी की ज़रूरत होती है. यहां बताया गया है कि ये क्या करते हैं:
googleapiclientका मुख्य काम Google API से कनेक्ट करना हैhttplib2, ऐप्लिकेशन के लिए एचटीटीपी क्लाइंट उपलब्ध कराता हैoauth2clientहमें OAuth2 क्रेडेंशियल मैनेज करने में मदद करता है
अनुमति देना और ऐप्लिकेशन के क्रेडेंशियल पाना
SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
- ऐप्लिकेशन
SCOPESवे अनुमतियां होती हैं जिनके लिए कोई ऐप्लिकेशन, उसे चलाने वाले उपयोगकर्ता से अनुरोध करेगा. उपयोगकर्ता के डेटा को सुरक्षित रखने के लिए, ऐप्लिकेशन को अनुमति दिए बिना नहीं चलाया जा सकता - सबसे सही तरीका यह है कि आप अपने ऐप्लिकेशन के काम करने के लिए, सबसे ज़्यादा पाबंदियां वाली अनुमतियों का इस्तेमाल करें. क्यों?
- क्या आपको यह परेशान करने वाला नहीं लगता कि जब कोई ऐप्लिकेशन इंस्टॉल या चलाया जाता है, तो वह कई तरह की अनुमतियां मांगता है? क्या तुम्हें पता है? अब आप दूसरी तरफ़ हैं. आपको अपने उपयोगकर्ताओं से इन सभी अनुमतियों के लिए अनुरोध करना होगा. ज़्यादा सीमित स्कोप का इस्तेमाल करने से, लोगों को आपका ऐप्लिकेशन इंस्टॉल करने में बेहतर महसूस होता है. ऐसा इसलिए, क्योंकि आपने कम ऐक्सेस मांगा है.
- ज़्यादातर स्कोप, लंबे यूआरएल की तरह दिखते हैं. Drive के मेटाडेटा का स्कोप भी ऐसा ही होता है.
SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
- ऐप्लिकेशन को Google के सर्वर से कम्यूनिकेट करने के लिए, टोकन की ज़रूरत होती है. Google से वापस आने वाले मान्य टोकन, टोकन स्टोरेज फ़ाइल
storage.jsonमें सेव किए जाएंगे. अगर इन टोकन को सेव नहीं किया जाता है, तो आपको हर बार ऐप्लिकेशन चलाने पर उसे फिर से अनुमति देनी होगी.
store = file.Storage('storage.json')
- यह ऐप्लिकेशन सबसे पहले यह जांच करता है कि क्या हमारे पास स्टोरेज में पहले से मान्य क्रेडेंशियल हैं. इसके लिए,
ifस्टेटमेंट की शर्त देखें.
creds = store.get()
if not creds or creds.invalid:
- अगर आपके पास क्रेडेंशियल नहीं हैं या उनकी समयसीमा खत्म हो गई है, तो आपको नया ऑथराइज़ेशन फ़्लो बनाना होगा. इसके लिए,
client_id.jsonफ़ाइल में मौजूद अपने OAuth क्लाइंट आईडी और सीक्रेट का इस्तेमाल करें. यह फ़ाइल आपने डाउनलोड की थी.oauth2client.client.flow_from_clientsecrets()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
- जब आपके ऐप्लिकेशन में कोई फ़्लो होता है, तो उसे एक्ज़ीक्यूट करना होता है, ताकि उपयोगकर्ता को OAuth2 की अनुमतियों वाली स्क्रीन दिखाई जा सके. यह स्क्रीन, ऊपर बताए गए और दिखाए गए [
oauth2client.tools.run_flow()] के ज़रिए दिखाई जाती है.
creds = tools.run_flow(flow, store)
- अनुमति दें पर क्लिक करके, उपयोगकर्ता इस बात की सहमति देते हैं कि आपका ऐप्लिकेशन, उनकी Google Drive फ़ाइल के मेटाडेटा को ऐक्सेस कर सकता है. साथ ही, Google सर्वर, एपीआई को ऐक्सेस करने के लिए टोकन वापस भेजते हैं. इन्हें
credsके तौर पर दिखाया जाता है औरstorage.jsonफ़ाइल में सेव किया जाता है. - अब आपके ऐप्लिकेशन के पास एपीआई कॉल करने के लिए मान्य क्रेडेंशियल हैं.
googleapiclient.discovery.build()को कॉल करने पर, उस एपीआई के लिए एक सेवा एंडपॉइंट बनता है जिसका इस्तेमाल किया जा रहा है. build()का इस्तेमाल करने के लिए, एपीआई का नाम ('drive') और पसंदीदा वर्शन (फ़िलहाल'v3') पास करें.- आखिरी पैरामीटर, एचटीटीपी क्लाइंट है. इसका इस्तेमाल, एन्क्रिप्ट (सुरक्षित) किए गए एपीआई कॉल के लिए किया जाता है.
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
Drive की पहली 100 फ़ाइलों/फ़ोल्डर और MIME टाइप को फ़ेच और डिसप्ले करना)
files = DRIVE.files().list().execute().get('files', [])
for f in files:
print(f['name'], f['mimeType'])
- कोड की अगली लाइन, Drive API के लिए अनुरोध बनाने के लिए,
files()कलेक्शन मेंlist()तरीके को कॉल करती है. इसे तुरंतexecute()के साथ कॉल किया जाता है. हमें Pythondictसे जवाब मिलता है. इसमें हम'files'कुंजी के लिए पूछते हैं, ताकि उपयोगकर्ता की Google Drive में मौजूद 100 फ़ाइलों और फ़ोल्डर के नाम मिल सकें. अगर आपके पास कम फ़ाइलें हैं, तो आपको कम नाम मिलेंगे. - 100 ही क्यों? यह
DRIVE.files().list()का डिफ़ॉल्ट फ़ॉन्ट है. अगर आपको यह संख्या बदलनी है, जैसे कि सिर्फ़ 10 फ़ाइलें या 1,000 फ़ाइलें, तो अपने अनुरोध मेंpageSizeपैरामीटर जोड़ें:pageSize.DRIVE.files().list(pageSize=10)ज़्यादा विकल्पों के लिए, यहां दस्तावेज़ दिया गया है. - स्क्रिप्ट का आखिरी हिस्सा, हर फ़ाइल के लिए लूप करता है और उनके नाम और फ़ाइल के MIME टाइप दिखाता है.
आपने Google REST API का इस्तेमाल करने वाला पहला ऐप्लिकेशन बना लिया है... बधाई हो! इंपोर्ट और अनुमति देने वाले कोड के अलावा, इस स्क्रिप्ट में कोड की सिर्फ़ कुछ लाइनें होती हैं. ये लाइनें ऊपर दी गई हैं. ज़्यादातर Google API एक ही तरीके से काम करते हैं. आपको सिर्फ़ उन एपीआई के लिए सेवा एंडपॉइंट बनाने होंगे जिनका आपको इस्तेमाल करना है.
किसी ऐप्लिकेशन में एक से ज़्यादा Google API का इस्तेमाल करना
हां, एक ही ऐप्लिकेशन में एक से ज़्यादा एपीआई का इस्तेमाल किया जा सकता है! यहां एक ऐसे ऐप्लिकेशन के लिए Python कोड स्निपेट दिया गया है जो एक ही एचटीटीपी क्लाइंट का फिर से इस्तेमाल करता है. साथ ही, तीन Google API के लिए सेवा एंडपॉइंट बनाता है. हां, यह तीन अलग-अलग SCOPES के साथ भी काम करता है:
SCOPES = (
'https://www.googleapis.com/auth/drive',
'https://www.googleapis.com/auth/spreadsheets.readonly',
'https://www.googleapis.com/auth/presentations',
)
. . .
HTTP = creds.authorize(Http())
DRIVE = discovery.build('drive', 'v3', http=HTTP)
SHEETS = discovery.build('sheets', 'v4', http=HTTP)
SLIDES = discovery.build('slides', 'v1', http=HTTP)
हमारा मानना है कि यह कोड, ऐसे ऐप्लिकेशन का हिस्सा हो सकता है जो स्प्रेडशीट डेटा (Sheets API) के आधार पर कई स्लाइड डेक (Slides API) जनरेट करता है. साथ ही, यह हर जनरेट किए गए डेक के लिए, कॉपी किए गए (Drive API) स्लाइड टेंप्लेट का इस्तेमाल करता है. हालांकि, ऐसा कोई ऐप्लिकेशन मौजूद नहीं है. Google Workspace टीम ने दो मौजूदा सैंपल बनाए हैं. इनका इस्तेमाल करके, आपको ऐसा ही ऐप्लिकेशन बनाने में मदद मिल सकती है:
- स्लाइड में मौजूद टेक्स्ट और इमेज बदलना ( ब्लॉग पोस्ट और वीडियो) — यह Drive API का इस्तेमाल करके, स्लाइड टेंप्लेट डेक को कॉपी करता है. इसके बाद, Slides API का इस्तेमाल करके, टेक्स्ट और इमेज के प्लेसहोल्डर बदलता है
- स्प्रेडशीट के डेटा से स्लाइड जनरेट करना ( ब्लॉग पोस्ट और वीडियो) — यह स्प्रेडशीट (Sheets API) से डेटा पढ़ता है और उस डेटा के आधार पर स्लाइड (Slides API) बनाता है
आपके लिए चुनौती: उस ऐप्लिकेशन को बनाएं!
12. *DevConsole का बेहतर इस्तेमाल
इस वैकल्पिक सेक्शन में, हम devconsole में प्रोजेक्ट बनाने, एपीआई चालू करने, और क्रेडेंशियल पाने का तरीका बताते हैं. यह सब, कोडलैब में ऊपर बताए गए विज़र्ड का इस्तेमाल किए बिना किया जा सकता है. यह उन लोगों के लिए है जो मैन्युअल तरीके से ऐसा करने में सहज हैं या ऐसा करने का तरीका जानना चाहते हैं.
Cloud Console में प्रोजेक्ट के बारे में बताना
Google API का इस्तेमाल करके कोई ऐप्लिकेशन लिखने के लिए, आपके पास एक प्रोजेक्ट होना चाहिए. आपके पास किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करने या नया प्रोजेक्ट बनाने का विकल्प होता है. यह Cloud Console में होता है. कुछ कोडलैब में एक मैजिक लिंक (यानी कि सेटअप विज़र्ड की तरह) दिया जाता है. इससे आपको तुरंत शुरू करने में मदद मिलती है और ज़रूरी चरणों में से कई को स्किप किया जा सकता है. हालांकि, ऐसा सभी में नहीं होता. इसलिए, प्रोजेक्ट बनाने के तरीके के बारे में यहां सामान्य निर्देश दिए गए हैं.
Cloud Console की ज़्यादातर स्क्रीन से प्रोजेक्ट बनाए जा सकते हैं. इसके लिए, आपको अपने Google क्रेडेंशियल से लॉग इन करना होगा. साथ ही, आपको कंसोल के सबसे ऊपर प्रोजेक्ट पुलडाउन दिखेगा. ध्यान दें कि यहां ज़्यादातर स्क्रीनशॉट, API मैनेजर से लिए गए हैं. इसे डेवलपर कंसोल भी कहा जाता है. इस पर आसानी से पहुंचने के लिए, बाईं ओर मौजूद नेविगेशन बार में "एपीआई मैनेजर" पर क्लिक करें या अपने ब्राउज़र को सीधे console.developers.google.com पर ले जाएं.
- अगर आपके पास अभी तक कोई प्रोजेक्ट नहीं है, तो आपको... पर ले जाया जा सकता है
- डैशबोर्ड पेज:
- लाइब्रेरी पेज:
- या पूरी तरह से खाली पेज:
अगर आपको यह तीसरा विकल्प दिखता है, तो ब्राउज़र को रीफ़्रेश करें. इससे आपको लाइब्रेरी पेज पर ले जाया जाएगा.
- चाहे आप डैशबोर्ड या लाइब्रेरी पेज पर हों, पेज पर सबसे ऊपर मौजूद प्रोजेक्ट सिलेक्टर पर क्लिक करें:
- इसके बाद, आपको सिलेक्टर डायलॉग दिखेगा. नया प्रोजेक्ट बनाने के लिए, दाईं ओर मौजूद "+" पर क्लिक करें:
- "+" पर क्लिक करने के बाद, आपको नया प्रोजेक्ट पेज दिखेगा. सभी उपभोक्ता खातों को डिफ़ॉल्ट रूप से 12 प्रोजेक्ट मिलते हैं. पहला प्रोजेक्ट बनाने से पहले, आपको Google API की सेवा की शर्तें स्वीकार करनी होंगी:
यह करने के बाद, आने वाले समय में प्रोजेक्ट बनाते समय, ईमेल पाने और सेवा की शर्तों से जुड़े सवाल नहीं दिखेंगे:
5. अगर आपने पहले कम से कम एक प्रोजेक्ट बनाया है, तो लॉगिन करने के बाद आपको उस प्रोजेक्ट के डैशबोर्ड पर ले जाया जाएगा जिस पर आपने आखिरी बार काम किया था. इसके बाद, नया प्रोजेक्ट बनाएं. इसके लिए, कोई प्रोजेक्ट चुनें > + को चुनें. 6. नया प्रोजेक्ट बन जाने के बाद, आपको वापस डैशबोर्ड पेज पर ले जाया जाएगा:
आपने प्रोजेक्ट बना लिया है. अब आपको अपने प्रोजेक्ट के लिए, उन एपीआई को चुनना है जिनका इस्तेमाल करना है.
Google API चालू करना
Google API का इस्तेमाल शुरू करने से पहले, आपको उन्हें चालू करना होगा. नीचे दिए गए उदाहरण में, Cloud Vision API को चालू करने का तरीका बताया गया है. इस कोडलैब में, एक या एक से ज़्यादा एपीआई का इस्तेमाल किया जा सकता है. इसलिए, इस्तेमाल करने से पहले उन्हें चालू करने के लिए, आपको मिलते-जुलते चरणों का पालन करना होगा.
Cloud Shell से
Cloud Shell का इस्तेमाल करके, एपीआई को चालू किया जा सकता है. इसके लिए, यह निर्देश इस्तेमाल करें:
gcloud services enable vision.googleapis.com
Cloud Console से
एपीआई मैनेजर में जाकर भी Vision API को चालू किया जा सकता है. Cloud Console में, API मैनेजर पर जाएं और "लाइब्रेरी" चुनें.
खोज बार में, "vision" टाइप करना शुरू करें. इसके बाद, जब Vision API दिखे, तो उसे चुनें. टाइप करते समय, यह कुछ इस तरह दिख सकता है:
नीचे दिया गया डायलॉग पाने के लिए, Cloud Vision API चुनें. इसके बाद, "चालू करें" बटन पर क्लिक करें:
लागत
Google के कई एपीआई का इस्तेमाल बिना किसी शुल्क के किया जा सकता है. हालांकि, GCP (प्रॉडक्ट और एपीआई) का इस्तेमाल मुफ़्त में नहीं किया जा सकता. ऊपर बताए गए तरीके से Vision API चालू करते समय, आपसे चालू बिलिंग खाते के बारे में पूछा जा सकता है. इस सुविधा को चालू करने से पहले, उपयोगकर्ता को Vision API की कीमत से जुड़ी जानकारी देख लेनी चाहिए. ध्यान रखें कि Google Cloud Platform (GCP) के कुछ प्रॉडक्ट में "हमेशा के लिए मुफ़्त" टियर की सुविधा होती है. बिलिंग शुरू होने के लिए, आपको इस टियर की सीमा से ज़्यादा इस्तेमाल करना होगा. कोड लैब के लिए, Vision API को किए गए हर कॉल को मुफ़्त टियर के हिसाब से गिना जाता है. जब तक आप हर महीने इसकी तय सीमा के अंदर रहते हैं, तब तक आपसे कोई शुल्क नहीं लिया जाएगा.
कुछ Google API, जैसे कि Google Workspace के लिए, हर महीने की सदस्यता ली जाती है. इसलिए, Gmail, Google Drive, Calendar, Docs, Sheets, और Slides के एपीआई इस्तेमाल करने के लिए, सीधे तौर पर बिलिंग नहीं की जाती. Google के अलग-अलग प्रॉडक्ट के लिए बिलिंग अलग-अलग तरीके से की जाती है. इसलिए, इस बारे में जानकारी पाने के लिए, अपने एपीआई के दस्तावेज़ देखें.
खास जानकारी
इस कोडलैब में, आपको सिर्फ़ Google Drive API चालू करना है. इसलिए, ऊपर दिए गए निर्देशों का पालन करें और "Drive" खोजें. चालू होने के बाद, आगे बढ़ें.
एपीआई अनुरोधों को अनुमति देना (उपयोगकर्ता की अनुमति)
अनुमति के बारे में जानकारी (साथ ही, कुछ पुष्टि करने के तरीके)
एपीआई से अनुरोध करने के लिए, आपके ऐप्लिकेशन के पास सही अनुमति होनी चाहिए. पुष्टि करना भी इसी तरह का शब्द है. इससे लॉगिन क्रेडेंशियल के बारे में पता चलता है. जब लॉगिन और पासवर्ड की मदद से अपने Google खाते में लॉगिन किया जाता है, तब आपकी पुष्टि की जाती है. पुष्टि हो जाने के बाद, अगला चरण यह तय करना होता है कि आपको या आपके कोड को डेटा ऐक्सेस करने की अनुमति है या नहीं. जैसे, Cloud Storage पर मौजूद ब्लॉब फ़ाइलें या Google Drive पर मौजूद किसी उपयोगकर्ता की निजी फ़ाइलें.
Google APIs, कई तरह की अनुमतियों के साथ काम करते हैं. हालांकि, Google Workspace API का इस्तेमाल करने वाले लोगों के लिए, उपयोगकर्ता की अनुमति सबसे आम है. ऐसा इसलिए, क्योंकि इस कोडलैब में दिया गया उदाहरण ऐप्लिकेशन, असली उपयोगकर्ताओं का डेटा ऐक्सेस करता है. उन उपयोगकर्ताओं को आपके ऐप्लिकेशन को अपना डेटा ऐक्सेस करने की अनुमति देनी होगी. इसका मतलब है कि आपके कोड को उपयोगकर्ता खाते के OAuth2 क्रेडेंशियल पाने होंगे.
उपयोगकर्ता की पुष्टि करने के लिए OAuth2 क्रेडेंशियल पाने के लिए, एपीआई मैनेजर पर वापस जाएं और बाएं नेविगेशन में मौजूद "क्रेडेंशियल" टैब चुनें:
इस पेज पर, आपको अपने सभी क्रेडेंशियल तीन अलग-अलग सेक्शन में दिखेंगे:
पहला एपीआई कुंजियों के लिए, दूसरा OAuth 2.0 क्लाइंट आईडी के लिए,और तीसरा OAuth2 सेवा खातों के लिए है. हम बीच वाले का इस्तेमाल कर रहे हैं.
क्रेडेंशियल बनाना
क्रेडेंशियल पेज पर, सबसे ऊपर मौजूद + क्रेडेंशियल बनाएं बटन पर क्लिक करें. इसके बाद, आपको एक डायलॉग दिखेगा. इसमें "OAuth क्लाइंट आईडी:" चुनें:
अगली स्क्रीन पर, आपके पास दो विकल्प होते हैं: अपने ऐप्लिकेशन की अनुमति के लिए "सहमति स्क्रीन" कॉन्फ़िगर करना और ऐप्लिकेशन का टाइप चुनना:
अगर आपने सहमति लेने के लिए स्क्रीन सेट नहीं की है, तो आपको कंसोल में चेतावनी दिखेगी. आपको अब ऐसा करना होगा. (अगर आपने पहले ही सहमति लेने के लिए स्क्रीन सेट अप कर ली है, तो इन चरणों को छोड़ दें.)
ऐसी स्क्रीन जहां OAuth के लिए सहमति दी जाती है
"सहमति वाली स्क्रीन कॉन्फ़िगर करें" पर क्लिक करें. यहां आपको "बाहरी" ऐप्लिकेशन चुनना होगा. अगर आप Google Workspace के ग्राहक हैं, तो "इंटरनल" ऐप्लिकेशन चुनें:
ध्यान दें कि इस अभ्यास के लिए, इससे कोई फ़र्क़ नहीं पड़ता कि आपने कौनसी भाषा चुनी है, क्योंकि आपको अपना कोडलैब सैंपल पब्लिश नहीं करना है. ज़्यादातर लोग "बाहरी" विकल्प चुनेंगे, ताकि उन्हें ज़्यादा जानकारी वाली स्क्रीन पर ले जाया जा सके. हालांकि, आपको सिर्फ़ सबसे ऊपर मौजूद "ऐप्लिकेशन का नाम" फ़ील्ड भरना होगा:
इस समय आपको सिर्फ़ ऐप्लिकेशन के नाम की ज़रूरत है. इसलिए, ऐसा नाम चुनें जो आपके कोडलैब को दिखाता हो. इसके बाद, सेव करें पर क्लिक करें.
OAuth क्लाइंट आईडी बनाना (उपयोगकर्ता खाते की पुष्टि)
अब OAuth2 क्लाइंट आईडी बनाने के लिए, क्रेडेंशियल टैब पर वापस जाएं. यहां आपको कई तरह के OAuth क्लाइंट आईडी दिखेंगे, जिन्हें बनाया जा सकता है:
हम एक कमांड-लाइन टूल डेवलप कर रहे हैं, जो अन्य है. इसलिए, इसे चुनें. इसके बाद, बनाएं बटन पर क्लिक करें. उस ऐप्लिकेशन के हिसाब से क्लाइंट आईडी का नाम चुनें जिसे आपको बनाना है. इसके अलावा, डिफ़ॉल्ट नाम का इस्तेमाल भी किया जा सकता है. डिफ़ॉल्ट नाम आम तौर पर, "अन्य क्लाइंट N" होता है.
आपके क्रेडेंशियल सेव किए जा रहे हैं
- नए क्रेडेंशियल वाला डायलॉग बॉक्स दिखता है; इसे बंद करने के लिए, ठीक है पर क्लिक करें
- क्रेडेंशियल पेज पर वापस जाएं. इसके बाद, नीचे की ओर स्क्रोल करके "OAuth2 क्लाइंट आईडी" सेक्शन पर जाएं. यहां, आपको अपने नए क्लाइंट आईडी के सबसे दाईं ओर नीचे की ओर, डाउनलोड आइकॉन
दिखेगा. इस पर क्लिक करें.
- इससे
client_secret-LONG-HASH-STRING.apps.googleusercontent.com.jsonनाम की फ़ाइल को सेव करने के लिए, एक डायलॉग बॉक्स खुलता है. यह फ़ाइल, आपके डाउनलोड फ़ोल्डर में सेव होती है. हमारा सुझाव है कि आप इसे छोटा करकेclient_secret.jsonजैसा कोई आसान नाम दें. यह नाम, सैंपल ऐप्लिकेशन में इस्तेमाल किया गया है. इसके बाद, इसे उस डायरेक्ट्री/फ़ोल्डर में सेव करें जहां आपको इस कोडलैब में सैंपल ऐप्लिकेशन बनाना है.