1. Google Workspace API का इस्तेमाल करना
यह कोडलैब आपको Google Workspace (पहले इसे G Suite कहा जाता था) एचटीटीपी-आधारित RESTful API इस्तेमाल करने के बारे में बताता है. Python में यह उदाहरण दिया गया है, ताकि इसे कम शब्दों में और सटीक बनाया जा सके. हालांकि, आपके पास डेवलपमेंट के लिए अपनी पसंदीदा भाषा चुनने का विकल्प भी होता है. आपको शुरुआती विषयों के बारे में बताया जाएगा. जैसे, प्रोजेक्ट बनाने/मैनेज करने के लिए डेवलपर कंसोल का इस्तेमाल करने, अनुमति से जुड़े क्रेडेंशियल हासिल करने, और एपीआई क्लाइंट लाइब्रेरी इंस्टॉल करने का तरीका. औपचारिकताओं का ध्यान रखते हुए, आपको पहली 100 फ़ाइलें और फ़ोल्डर के एपीआई का इस्तेमाल करके उसे Google Drive में सेव किया है.
आप इन चीज़ों के बारे में जानेंगे
- Google/Cloud Developers Console का इस्तेमाल करके प्रोजेक्ट बनाना
- पाएं और अपने ऐप्लिकेशन में OAuth2 ऐप्लिकेशन के क्रेडेंशियल का इस्तेमाल करें
- Google API क्लाइंट लाइब्रेरी का इस्तेमाल करने के बारे में जानें
- Google &का उपयोग करके ऐप्लिकेशन लिखना Google Workspace API
- Google Drive API से फ़ाइल और फ़ोल्डर की जानकारी पाना
आपको इनकी ज़रूरत होगी
- इंटरनेट और वेब ब्राउज़र का ऐक्सेस
- Google खाता (Google Workspace खातों के लिए एडमिन की अनुमति ज़रूरी हो सकती है)
- POSIX के हिसाब से काम करने वाले, जैसे कि Linux और Mac OS X
- कोड एडिटर या शेल कमांड का इस्तेमाल करके सोर्स फ़ाइलें बनाने की सुविधा.
- Python (2 या 3) में बुनियादी स्किल, लेकिन इस्तेमाल की जा सकने वाली किसी भी भाषा का इस्तेमाल किया जा सकता है
- Google Drive में मौजूद कुछ फ़ाइलें और/या फ़ोल्डर
2. सर्वे
इस कोडलैब ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?
Google Workspace के डेवलपर टूल इस्तेमाल करने का आपका अनुभव कैसा रहेगा और API?
3. खास जानकारी
इस कोडलैब में, आपको ये काम करने के बारे में जानकारी मिलेगी:
- Python के लिए, Google API की क्लाइंट लाइब्रेरी डाउनलोड करना
- Google/Cloud Developers Console में नया प्रोजेक्ट बनाना
- अपने ऐप्लिकेशन के लिए ज़रूरी क्रेडेंशियल पाएं
- Google Drive API को ऐक्सेस करने के लिए, उन क्रेडेंशियल का इस्तेमाल करें
अगर आपको Python का इस्तेमाल नहीं करना है, तो अपने पसंदीदा डेवलपमेंट टूल में कोडलैब लागू किया जा सकता है. साथ ही, इस्तेमाल की जा सकने वाली भाषाओं की क्लाइंट लाइब्रेरी यहां दी गई हैं. Python के उदाहरणों को स्यूडोकोड के तौर पर देखें.
4. Python एनवायरमेंट की पुष्टि करें
इस कोडलैब के लिए आपको Python लैंग्वेज का इस्तेमाल करना होगा. हालांकि, Google API की क्लाइंट लाइब्रेरी कई भाषाओं का इस्तेमाल करती है. इसलिए, अपने पसंदीदा डेवलपमेंट टूल में इसके जैसा कुछ बनाएं और Python को स्यूडोकोड के तौर पर इस्तेमाल करें. खास तौर पर, यह कोडलैब Python 2 और 3 के साथ काम करता है. हालांकि, हमारा सुझाव है कि जल्द से जल्द 3.x का इस्तेमाल करें.
Cloud Shell एक ऐसी सुविधा है जिसे सीधे Cloud Console पर इस्तेमाल किया जा सकता है. इसके लिए किसी लोकल डेवलपमेंट एनवायरमेंट की ज़रूरत नहीं होती. इसलिए, इस ट्यूटोरियल को वेब ब्राउज़र की मदद से, क्लाउड पर ही पूरा किया जा सकता है. क्लाउड शेल खास तौर पर तब काम आता है, जब आपको GCP प्रॉडक्ट और एपीआई. खास तौर पर, इस कोडलैब के लिए Cloud Shell में Python के दोनों वर्शन पहले से इंस्टॉल किए जा चुके हैं.
Cloud Shell में IPython भी इंस्टॉल किया गया है... यह एक बेहतर लेवल का इंटरैक्टिव Python इंटरप्रेटर है. हमारा सुझाव है कि आप इसका सुझाव दें. खास तौर पर तब, जब आप डेटा साइंस या मशीन लर्निंग कम्यूनिटी का हिस्सा हों. अगर आप हैं, तो IPython, Jupyter Notebooks के साथ-साथ Colab के लिए डिफ़ॉल्ट अनुवादक है. यह Jupyter Notebooks को Google Research होस्ट करता है.
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 और हमारा सुझाव है कि आप अपने कंप्यूटर पर, Python 3 Virtualenv इंस्टॉल करें. -p flag
का इस्तेमाल इस तरह से किया जा सकता है:
virtualenv -p python3 my_env
"चालू करें" विकल्प का इस्तेमाल करके, नया वर्चुअल एनवायरमेंट डालें इस तरह दिखेगा:
source my_env/bin/activate
इस एनवायरमेंट में होने की पुष्टि करने के लिए, आपके शेल प्रॉम्प्ट के आगे अब आपके एनवायरमेंट का नाम दिखेगा, जैसे कि
(my_env) $
अब किसी भी ज़रूरी पैकेज को pip install
किया जा सकता है, इस वर्शन में कोड को एक्ज़ीक्यूट किया जा सकता है वगैरह. दूसरा फ़ायदा यह है कि अगर आपने इसमें गड़बड़ी कर दी है, तो ऐसी स्थिति में आ जाएं जिसमें आपके Python इंस्टॉलेशन में कोई गड़बड़ी हो. ऐसे में, आपके सिस्टम को नुकसान पहुंचाए बिना इस पूरे एनवायरमेंट को उड़ा दें.
5. Python के लिए, Google API की क्लाइंट लाइब्रेरी इंस्टॉल करना
इस कोडलैब के लिए, Python के लिए Google API क्लाइंट लाइब्रेरी का इस्तेमाल करना ज़रूरी है. इसलिए, या तो इसे इंस्टॉल करना आसान है या फिर आपको कुछ भी करने की ज़रूरत नहीं है.
हमने पहले सुझाव दिया था कि सुविधा के लिए, आप Cloud Shell का इस्तेमाल करें. क्लाउड पर मौजूद वेब ब्राउज़र का इस्तेमाल करके, पूरा ट्यूटोरियल पूरा किया जा सकता है. Cloud Shell का इस्तेमाल करने की एक और वजह यह है कि कई लोकप्रिय डेवलपमेंट टूल और ज़रूरी लाइब्रेरी पहले से ही पहले से इंस्टॉल होते हैं.
*क्लाइंट लाइब्रेरी इंस्टॉल करना
(ज़रूरी नहीं) अगर Cloud Shell या किसी ऐसे लोकल एनवायरमेंट का इस्तेमाल किया जा रहा है जहां क्लाइंट लाइब्रेरी पहले से इंस्टॉल हैं, तो इसे स्किप किया जा सकता है. आपको ऐसा सिर्फ़ तब करना होगा, जब ऐप्लिकेशन को स्थानीय तौर पर डेवलप किया जा रहा हो और आपने उन्हें इंस्टॉल न किया हो (या पक्का न किया हो कि आपने इंस्टॉल किया है). इंस्टॉल करने के लिए pip
(या pip3
) का इस्तेमाल करना सबसे आसान तरीका है (इसमें ज़रूरी होने पर pip
को खुद अपडेट करना भी शामिल है):
pip install -U pip google-api-python-client oauth2client
इंस्टॉल करने की पुष्टि करें
यह निर्देश क्लाइंट लाइब्रेरी के साथ-साथ, ऐसे सभी पैकेज इंस्टॉल करता है जिन पर यह निर्भर करता है. चाहे क्लाउड शेल का इस्तेमाल किया जा रहा हो या अपने एनवायरमेंट का, पुष्टि करें कि क्लाइंट लाइब्रेरी ज़रूरी पैकेज इंपोर्ट करके इंस्टॉल की गई है या नहीं. साथ ही, पुष्टि करें कि इंपोर्ट में कोई गड़बड़ी नहीं है (न ही आउटपुट):
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 Client-ID" बनाने का अनुभव पहले से ही है. अगर प्रोजेक्ट बनाना है या उसे फिर से इस्तेमाल करना है, तो कोई मौजूदा OAuth क्लाइंट आईडी बनाएं या उसका फिर से इस्तेमाल करें. इसके बाद, अगले दो मॉड्यूल छोड़ें और सीधे "अपनी Drive फ़ाइलें दिखाना और फ़ोल्डर ऐप्लिकेशन" इसके अलावा, कम निर्देशों के साथ उन चरणों की समीक्षा करने के लिए, सीधे "devconsole के बेहतर इस्तेमाल के तरीके" पर जाएं.
6. Cloud Console में प्रोजेक्ट के बारे में बताएं
Google API का इस्तेमाल करने वाले ऐप्लिकेशन के लिए एक प्रोजेक्ट ज़रूरी है. उन्हें Google Cloud Developers Console या "devconsole" में मैनेज किया जाता है. इस कोडलैब में, हम सिर्फ़ Google Drive API का इस्तेमाल करेंगे. इसलिए, हमारे पास एक मैजिक लिंक है (नीचे, चरण 1 में बताया गया है) जो:
- यह आपको devconsole पर ले जाता है
- आपको नया प्रोजेक्ट बनाने या किसी मौजूदा प्रोजेक्ट को चुनने के बारे में जानकारी देता है और
- Drive API को अपने-आप चालू करता है
चलिए, ऐसा करते हैं!
- console.developers.google.com/start/api?id=drive पर जाएं और अपने Google खाते में लॉगिन करें.
- अगर आपके पास अभी तक कोई प्रोजेक्ट नहीं है, तो आपको Google API की सेवा की शर्तें स्वीकार करने के लिए यह स्क्रीन दिखेगी:
शर्तें स्वीकार करने के बाद, "मेरा प्रोजेक्ट" नाम का एक नया प्रोजेक्ट को बनाया जाएगा और Drive API अपने-आप चालू हो जाएगा. 3. अगर इसके बजाय, आपने पहले से ही कोई प्रोजेक्ट (शायद आपका पिछला कोडलैब?) बना लिया है, तो आपको यह स्क्रीन दिखेगी: प्रोजेक्ट बनाएं पुलडाउन पर क्लिक करने पर, कोई मौजूदा प्रोजेक्ट चुनें या कोई नया प्रोजेक्ट बनाएं. नया या मौजूदा प्रोजेक्ट चुनने के बाद, Drive API अपने-आप चालू हो जाएगा. 4. Drive API चालू होने की पुष्टि करने के बाद, आपको यह पता चल जाएगा कि: 5. अगले चरण पर जाने के लिए, क्रेडेंशियल पर जाएं पर क्लिक करें.
7. *एपीआई अनुरोध को अनुमति देना (उपयोगकर्ता की अनुमति)
अगर आपने उपयोगकर्ता खाते को अनुमति देने से जुड़े क्रेडेंशियल पहले से बना लिए हैं और आपको प्रोसेस के बारे में जानकारी है, तो इस सेक्शन को छोड़ा जा सकता है. यह सेवा खाते को अनुमति देने की तकनीक से अलग है, जिसकी तकनीक अलग है, इसलिए कृपया नीचे जारी रखें.
अनुमति देने के बारे में जानकारी (साथ ही, पुष्टि करने के कुछ तरीके)
एपीआई को ऐक्सेस करने का अनुरोध करने के लिए, आपके ऐप्लिकेशन को सही अनुमति की ज़रूरत होगी. इसी तरह, पुष्टि करने की सुविधा का इस्तेमाल, लॉगिन क्रेडेंशियल के बारे में बताता है. इसका इस्तेमाल करके, Google खाते में लॉगिन करने के दौरान, अपनी पहचान की पुष्टि की जा सकती है पासवर्ड डालें. पुष्टि होने के बाद, अगला चरण यह होता है कि क्या आप—या आपका कोड को—को डेटा ऐक्सेस करने की अनुमति है. जैसे, Cloud Storage में मौजूद BLOB फ़ाइलों या Google Drive पर मौजूद उपयोगकर्ता की निजी फ़ाइलों को ऐक्सेस करने की अनुमति.
Google API में कई तरह की अनुमति दी जा सकती है. हालांकि, 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 में अपना डेटा ऐक्सेस करने के लिए, आपके ऐप्लिकेशन को अनुमति देनी होगी.
ध्यान दें: प्रोजेक्ट बनाने, एपीआई चालू करने, और मैन्युअल तरीके से क्रेडेंशियल पाने के बारे में ज़्यादा जानकारी. उदाहरण के लिए, "विज़र्ड" का इस्तेमाल किए बिना .
8. Drive में मौजूद फ़ाइलें और फ़ोल्डर ऐप्लिकेशन
चाहे आपके लोकल डेवलपमेंट एनवायरमेंट में हो या Cloud Shell में, उसी डायरेक्ट्री में जहां आपकी client_id.json
क्रेडेंशियल फ़ाइल मौजूद है, drive_list.py
नाम की एक नई Python फ़ाइल बनाएं और नीचे दिए गए कोड की लाइनें जोड़ें:
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 डिस्क में MIME प्रकार और डिसप्ले
ध्यान दें: आगे के स्टडी के लिए, कोडलैब का यह मॉड्यूल खत्म होने के बाद ही, कोड को अच्छी तरह से समझ लिया जा सकता है और हर लाइन का जवाब दिया जा सकता है.
ऐप्लिकेशन चलाना
इस फ़ाइल को drive_list.py
जैसा नाम दें. जब आप पहली बार स्क्रिप्ट निष्पादित करते हैं, तो उसके पास डिस्क (आपकी) पर मौजूद उपयोगकर्ता फ़ाइलों तक पहुंचने का प्राधिकरण नहीं होगा. आउटपुट कुछ ऐसा दिखता है, लेकिन एक्ज़ीक्यूशन रुक गया होता है:
$ 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 फ़्लो डायलॉग विंडो में आपकी स्थान-भाषा के मुताबिक होता है. उपयोगकर्ता को अनुरोध की गई अनुमतियों के लिए साफ़ तौर पर अनुमति देनी होगी, नहीं तो "रन फ़्लो". कोड के किसी हिस्से को अपवाद माना जाएगा और स्क्रिप्ट आगे नहीं बढ़ेगी.
ध्यान दें: कुछ उपयोगकर्ताओं के पास एक से ज़्यादा ब्राउज़र होते हैं. ऐसा हो सकता है कि अनुमति पाने का अनुरोध, किसी ऐसे ब्राउज़र पर पॉप-अप हो रहा हो जिसे पसंद नहीं किया जाता. अगर ऐसा है, तो बस उस ब्राउज़र विंडो से पूरे यूआरएल को कॉपी करें जिसे आपको इस्तेमाल नहीं करना है. इसके बाद, उस ब्राउज़र के पता बार में चिपकाएं जिसे आपको इस्तेमाल करना है.
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.com/googlecodelabs/gsuite-apis-intro पर इसके GitHub रेपो में भी उपलब्ध है. (हमारा लक्ष्य है कि इस कोडलैब को रेपो के साथ सिंक रखा जाए.) क्या आप इसे खेलने के लिए तैयार हैं? यहां ऐसे कई संसाधन दिए गए हैं जिनका इस्तेमाल करके, कोडलैब के इस मॉड्यूल में इस्तेमाल किए गए कॉन्टेंट को बेहतर तरीके से समझा जा सकता है. इसके अलावा, अगर आपको इस बारे में ज़्यादा जानकारी चाहिए और Google की टेक्नोलॉजी को प्रोग्राम के हिसाब से ऐक्सेस करने के अन्य तरीकों के बारे में जानना है, तो इन संसाधनों का इस्तेमाल किया जा सकता है.
जैसा कि पहले बताया गया था, अगर आप नियमित Python डेवलपर नहीं हैं, तो हम आपको अपनी पसंदीदा डेवलपमेंट लैंग्वेज में इस कोडलैब उदाहरण को फिर से इस्तेमाल करने का न्योता देते हैं. इस्तेमाल की जा सकने वाली भाषाओं के लिए क्लाइंट लाइब्रेरी यहां उपलब्ध हैं.
अतिरिक्त अध्ययन
अब आपको Drive API का थोड़ा-बहुत अनुभव है. इसलिए, यहां कुछ सुझाव दिए गए हैं. इनकी मदद से, अपने हुनर को बेहतर बनाया जा सकता है:
- ZIP फ़ाइलें: एक ऐसा ऐप्लिकेशन लिखें, जो Drive में कई ZIP संग्रहों का बैक अप लेता है. साथ ही, उन्हें तेज़ी से अनकंप्रेस करता है, ताकि हर ZIP फ़ाइल का नाम उस फ़ोल्डर का नाम हो जिसमें वे फ़ाइलें भेजी जाती हैं. अतिरिक्त क्रेडिट: अन्य ZIP फ़ाइलों में, बार-बार होने वाले ZIP फ़ॉर्मैट की फ़ाइलों को संग्रहित करने की सुविधा मिलती है. साथ ही, Drive में मौजूद फ़ोल्डर को अन्य फ़ोल्डर में एम्बेड किया जा सकता है. अगर आप छोड़ देते हैं, तो यह Node.js नमूना ऐप्लिकेशन देखें.
- फ़ोटो एल्बम: फ़ोटो एल्बम जनरेट करने वाले टूल का शुरुआती हिस्सा लिखें. यह टूल, कई इमेज को Google Drive पर अपलोड करता है. साथ ही, उन्हें टाइमस्टैंप और भौगोलिक स्थान. अतिरिक्त क्रेडिट: एक ओपन सोर्स इमेज में बदलाव की लाइब्रेरी ढूंढें और हर फ़ोल्डर में सभी फ़ोटो जोड़ें ताकि उन इवेंट (यात्रा, डिनर वगैरह) को दिखाया जा सके जिन्हें आपने अनुभव किया है.
- GCP एक्सप्लोर करें: ऐसा ऐप्लिकेशन लिखें जो Google Workspace और Google Cloud Platform (GCP) को एक साथ कनेक्ट करता हो. एक ऐसा टूल लिखें जो Google Drive से Google Cloud Storage (GCS) में इमेज फ़ाइलों का बैक अप लेता है. यह एक ऐसा टूल है जो "क्लाउड में फ़ाइल स्टोरेज" के तौर पर काम करता है समाधान. मानो या न मानो, Drive की तुलना में GCS (जीसीएस) का इस्तेमाल करना आसान होगा, क्योंकि यह बेहतर क्लाइंट लाइब्रेरी की वजह से होता है.
- विश्लेषण करें और रिकॉर्ड करें: हर इमेज का विश्लेषण करके, समाधान को #3 तक बढ़ाएं. इसके लिए, हर इमेज को Google Cloud Vision API में पास करें और सबसे ऊपर के (3, 5, 10) "लेबल" पाएं उन इमेज में दिखाई गई चीज़ों के बारे में एपीआई को बताया गया है. हर इमेज के लिए, Google शीट में एक पंक्ति लिखें. इसमें Cloud Vision से डेटा का विश्लेषण और GCS (जीसीएस) पर उसका बैक अप ली गई जगह की जानकारी शामिल करें. अगर आप हार मान लेते हैं, तो यह Python कोडलैब देखें.
10. अतिरिक्त संसाधन
दस्तावेज़
- Google Drive API दस्तावेज़ (REST API और Android का नेटिव SDK/एपीआई)
- Google Workspace API से जुड़े अन्य दस्तावेज़
- Google API के अन्य दस्तावेज़
- Google API क्लाइंट लाइब्रेरी
- OAuth2 दस्तावेज़
मिलते-जुलते और सामान्य वीडियो
- नए Google API प्रोजेक्ट बनाना ( ब्लॉग पोस्ट और वीडियो)
- Python ऑथराइज़ेशन बॉयलरप्लेट कोड की समीक्षा ( वीडियो)
- Google Drive में अपनी फ़ाइलों को लिस्ट करना ( वीडियो, ब्लॉग पोस्ट)
- Google Drive API वीडियो लाइब्रेरी
- Launchpad ऑनलाइन वीडियो सीरीज़ (इससे पहले...)
- Google Workspace डेवलपर कार्यक्रम के लिए वीडियो सीरीज़
समाचार और अपडेट
- Google Workspace डेवलपर ब्लॉग
- Google Workspace डेवलपर Twitter (@GSuiteDevs)
- Google Workspace डेवलपर के लिए हर महीने का न्यूज़लेटर
अन्य कोडलैब
आसान लेवल
- [Apps Script] Google Apps Script के बारे में जानकारी
इंटरमीडिएट लेवल
- [Apps Script] CLASP Apps Script कमांड-लाइन टूल
- [Apps Script] Gmail ऐड-ऑन
- [Apps Script] Docs ऐड-ऑन और जीसीपी नैचुरल लैंग्वेज एपीआई
- [Apps Script] Hangouts Chat बॉट फ़्रेमवर्क
- [REST API] कस्टम रिपोर्टिंग टूल (Sheets API)
- [REST API] GitHub लाइसेंस के BigQuery ऐनालाइज़र के लिए कस्टम स्लाइड जनरेटर (Slides+BigQuery एपीआई)
बेहतर
- [REST API] क्लाउड इमेज प्रोसेसिंग का वर्कफ़्लो (Drive, Cloud Storage, Cloud Vision, Sheets एपीआई)
रेफ़रंस ऐप्लिकेशन
- Markdown to Google Slides का कन्वर्टर (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 स्टाइल के लिए एक दिशा-निर्देश यह है कि स्टैंडर्ड लाइब्रेरी और तीसरे पक्ष के मॉड्यूल के इंपोर्ट को अलग-अलग किया जाए. इसके लिए, खाली लाइन का इस्तेमाल किया जाता है.
- अगले तीन इंपोर्ट से, आपको ज़रूरी क्लास और फ़ंक्शन इस्तेमाल करते हैं... इस ऐप्लिकेशन को लिखने के लिए हमें इन सभी की ज़रूरत होती है. संक्षेप में, यहां बताया गया है कि वे क्या करते हैं:
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:
- अगर आपके क्रेडेंशियल मौजूद नहीं हैं या उनकी समयसीमा खत्म हो चुकी है, तो आपके OAuth क्लाइंट आईडी और
oauth2client.client.flow_from_clientsecrets()
सीक्रेटclient_id.json
फ़ाइल में सेव किया गया है].
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
- आपके ऐप्लिकेशन का फ़्लो उपलब्ध होने के बाद, उपयोगकर्ता को [
oauth2client.tools.run_flow()
के ज़रिए] OAuth2 अनुमतियों की स्क्रीन दिखाने के लिए, उसे एक्ज़ीक्यूट करना होगा. इस स्क्रीन के बारे में ऊपर बताया गया है और बताया गया है.
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 फ़ाइलें/फ़ोल्डर और MIMEtypes)
files = DRIVE.files().list().execute().get('files', [])
for f in files:
print(f['name'], f['mimeType'])
- अनुरोध करने के लिए, कोड की अगली लाइन में Drive API के लिए,
files()
कलेक्शन में मौजूदlist()
तरीके को कॉल किया जाता है. इसेexecute()
की मदद से तुरंत कॉल किया जाता है. एक Pythondict
मिलता है, जिसमें से हम 100 फ़ाइल और पाने के लिए,'files'
कुंजी मांगते हैं उपयोगकर्ता की Google डिस्क से फ़ोल्डर के नाम (या कम फ़ाइलें होने पर कम). - 100 क्यों? यह
DRIVE.files().list()
से डिफ़ॉल्ट रूप से सेट है. अगर आपको यह नंबर बदलना है, तो अपने अनुरोध में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 में होता है. कुछ कोडलैब आपको मैजिक लिंक उपलब्ध कराते हैं.जैसे, सेटअप विज़र्ड की मदद से, अपने काम को तुरंत पूरा किया जा सकता है. इससे कई ज़रूरी चरण छूट जाते हैं. हालांकि, सभी मॉडल काम नहीं करते. इसलिए, प्रोजेक्ट बनाने से जुड़े सामान्य निर्देश दिए गए हैं.
अगर आपने Google क्रेडेंशियल से लॉग इन किया हुआ है और कंसोल के सबसे ऊपर, प्रोजेक्ट पुलडाउन दिखता है, तो Cloud Console में ज़्यादातर स्क्रीन से प्रोजेक्ट बनाए जा सकते हैं. ध्यान दें कि यहां दिए गए ज़्यादातर स्क्रीनशॉट, एपीआई मैनेजर यानी कि Developers Console से लिए गए हैं. बाएं नेविगेशन में "एपीआई मैनेजर" पर क्लिक करके या ब्राउज़र को सीधे console.developers.google.com पर जाकर, स्क्रीनशॉट तक आसानी से पहुंचा जा सकता है.
- अगर आपके पास अभी तक कोई प्रोजेक्ट नहीं है, तो आपको यहां ले जाया जा सकता है...
- डैशबोर्ड पेज:
- लाइब्रेरी पेज:
- या पूरी तरह से खाली पेज: अगर आपके साथ यह तीसरी बार होता है, तो ब्राउज़र को रीफ़्रेश करके लाइब्रेरी पेज पर जाएं.
- आप डैशबोर्ड या लाइब्रेरी पेज पर हों, पेज के सबसे ऊपर मौजूद प्रोजेक्ट चुनने वाले टूल पर क्लिक करें:
- इसके बाद, आपको सिलेक्टर वाला डायलॉग मिलेगा. "+" पर क्लिक करें नया प्रोजेक्ट बनाने के लिए दाईं ओर मौजूद:
- "+" पर क्लिक करने के बाद, आपको नया प्रोजेक्ट पेज दिखेगा. सभी उपभोक्ता खातों को डिफ़ॉल्ट रूप से 12 प्रोजेक्ट मिलते हैं. अपना पहला प्रोजेक्ट बनाने से पहले, आपको Google API की सेवा की शर्तें स्वीकार करनी होंगी:
ऐसा करने के बाद, आगे के प्रोजेक्ट बनाते समय, ईमेल में किया गया अनुरोध और सेवा की शर्तों से जुड़े सवाल हट जाएंगे:
5. अगर आपने पहले कभी कम से कम एक प्रोजेक्ट बनाया है, तो लॉगिन करने के बाद आपको उस प्रोजेक्ट के डैशबोर्ड पर ले जाया जाएगा जिस पर आपने आखिरी बार काम किया था. इसके बाद, एक नया प्रोजेक्ट बनाएं, क्योंकि आपको प्रोजेक्ट चुनें को चुनना होगा > + पर टैप करें. 6. नया प्रोजेक्ट बनाने के बाद, आपको डैशबोर्ड पेज पर वापस लाया जाएगा:
अब आपने एक प्रोजेक्ट सफलतापूर्वक बना लिया है और आप अपने प्रोजेक्ट के लिए उपयोग किए जाने वाले API चुनकर आगे बढ़ने के लिए तैयार हैं.
Google API चालू करें
Google API का इस्तेमाल शुरू करने से पहले, आपको उन्हें चालू करना होगा. नीचे दिए गए उदाहरण में बताया गया है कि Cloud Vision API को चालू करने के लिए क्या करना चाहिए. इस कोडलैब में, हो सकता है कि आप एक या उससे ज़्यादा एपीआई का इस्तेमाल कर रहे हों. साथ ही, इस्तेमाल करने से पहले इन्हें चालू करने के लिए, आपको ऊपर दिए गए तरीके का पालन करना होगा.
Cloud Shell से
Cloud Shell का इस्तेमाल करके, नीचे दिए गए कमांड का इस्तेमाल करके एपीआई को चालू किया जा सकता है:
gcloud services enable vision.googleapis.com
Cloud Console से
एपीआई मैनेजर में जाकर भी Vision API को चालू किया जा सकता है. Cloud Console में, एपीआई मैनेजर पर जाएं और "लाइब्रेरी" चुनें.
खोज बार में, "विज़न" टाइप करना शुरू करें. इसके बाद, दिखने पर Vision API को चुनें. टाइप करते समय, यह कुछ ऐसा दिख सकता है:
नीचे दिख रहे डायलॉग को पाने के लिए, Cloud Vision API चुनें. इसके बाद, "चालू करें" पर क्लिक करें बटन:
लागत
कई Google API का इस्तेमाल बिना किसी शुल्क के किया जा सकता है. हालांकि, 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 में मौजूद BLOB फ़ाइलों या Google Drive पर मौजूद उपयोगकर्ता की निजी फ़ाइलों को ऐक्सेस करने की अनुमति.
Google API में कई तरह की अनुमति दी जा सकती है. हालांकि, 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
(जिसका सैंपल ऐप्लिकेशन इस्तेमाल करता है) जैसे आसान नाम दिया जाए. इसके बाद, इसे उस डायरेक्ट्री/फ़ोल्डर में सेव करें जहां आपको इस कोडलैब में सैंपल ऐप्लिकेशन बनाना है.