Python क्विकस्टार्ट

Classroom API के लिए अनुरोध करने का आसान Python कोड बनाने के लिए, इस पेज के बाकी चरणों में बताए गए चरणों का पालन करें.

ज़रूरी बातें

इस क्विकस्टार्ट को चलाने के लिए, आपको इन शर्तों को पूरा करना होगा:

  • डेस्कटॉप ऐप्लिकेशन के लिए अनुमति देने वाले क्रेडेंशियल. डेस्कटॉप ऐप्लिकेशन के लिए क्रेडेंशियल बनाने का तरीका जानने के लिए, क्रेडेंशियल बनाना देखें.

  • G Suite for Education खाता, जिसमें Google Classroom चालू है.

पहला कदम: Google क्लाइंट लाइब्रेरी इंस्टॉल करना

Python के लिए Google क्लाइंट लाइब्रेरी इंस्टॉल करने के लिए, यह निर्देश चलाएं:

  pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

इंस्टॉल करने के अन्य विकल्पों के लिए, Python लाइब्रेरी##39;इंस्टॉलेशन सेक्शन देखें.

दूसरा कदम: नमूने को कॉन्फ़िगर करें

सैंपल को कॉन्फ़िगर करने के लिए:

  1. अपने काम की डायरेक्ट्री में, quickstart.py नाम वाली एक फ़ाइल बनाएं.
  2. quickstart.py में नीचे दिया गया कोड शामिल करें:

    Classroom/Quickstart/quickstart.py
    from __future__ import print_function
    
    import os.path
    
    from google.auth.transport.requests import Request
    from google.oauth2.credentials import Credentials
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    from googleapiclient.errors import HttpError
    
    # If modifying these scopes, delete the file token.json.
    SCOPES = ['https://www.googleapis.com/auth/classroom.courses.readonly']
    
    
    def main():
        """Shows basic usage of the Classroom API.
        Prints the names of the first 10 courses the user has access to.
        """
        creds = None
        # The file token.json stores the user's access and refresh tokens, and is
        # created automatically when the authorization flow completes for the first
        # time.
        if os.path.exists('token.json'):
            creds = Credentials.from_authorized_user_file('token.json', SCOPES)
        # If there are no (valid) credentials available, let the user log in.
        if not creds or not creds.valid:
            if creds and creds.expired and creds.refresh_token:
                creds.refresh(Request())
            else:
                flow = InstalledAppFlow.from_client_secrets_file(
                    'credentials.json', SCOPES)
                creds = flow.run_local_server(port=0)
            # Save the credentials for the next run
            with open('token.json', 'w') as token:
                token.write(creds.to_json())
    
        try:
            service = build('classroom', 'v1', credentials=creds)
    
            # Call the Classroom API
            results = service.courses().list(pageSize=10).execute()
            courses = results.get('courses', [])
    
            if not courses:
                print('No courses found.')
                return
            # Prints the names of the first 10 courses.
            print('Courses:')
            for course in courses:
                print(course['name'])
    
        except HttpError as error:
            print('An error occurred: %s' % error)
    
    
    if __name__ == '__main__':
        main()

तीसरा चरण: सैंपल चलाना

सैंपल चलाने के लिए:

  1. कमांड-लाइन से, नीचे दिया गया निर्देश चलाएं:

    python quickstart.py
    
  2. (ज़रूरी नहीं). अगर यह पहली बार नमूना चला रहा है, तो नमूना एक नई विंडो खोलता है, जिसमें आपको अपने डेटा का ऐक्सेस देने का संकेत दिया जाता है:

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

अगर आपको समस्याएं आ रही हैं, तो सैंपल से जुड़ी समस्या हल करना सेक्शन देखें.

सैंपल की समस्या हल करना

इस सेक्शन में कुछ ऐसी समस्याओं के बारे में बताया गया है जो आपको इस क्विकस्टार्ट प्रोसेस को चलाने में हो सकती हैं.

AttributeError: 'Module_six_moves_urllib_parse' object has no attribute 'urlparse'

यह गड़बड़ी Mac macOS में हो सकती है, जहां six मॉड्यूल (Python लाइब्रेरी का डिपेंडेंसी) डिफ़ॉल्ट तौर पर इंस्टॉल होता है. यह पीआईपी के इंस्टॉल होने से पहले लोड होता है. इस समस्या को ठीक करने के लिए, PYTHONPATH सिस्टम एनवायरमेंट वैरिएबल में pip's इंस्टॉल की जगह जोड़ें:

  1. इन निर्देशों के साथ pip's के इंस्टॉल होने की जगह तय करें:

    pip show six | grep "Location:" | cut -d " " -f2
    
  2. ऊपर दी गई वैल्यू को <pip_install_path> से बदलकर, अपनी ~/.bashrc फ़ाइल में इस लाइन को जोड़ें:

    export PYTHONPATH=$PYTHONPATH:<pip_install_path>
    
  3. नीचे दिए गए निर्देश का इस्तेमाल करके, किसी भी खुली टर्मिनल विंडो में अपनी ~/.bashrc फ़ाइल फिर से लोड करें:

    source ~/.bashrc
    

TypeError: sequence item 0: expected str instance, bytes found

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

pip install --upgrade httplib2

Cannot uninstall 'six'

pip install निर्देश चलाए जाने पर, आपको यह गड़बड़ी मिल सकती है:

& &कोटेशन 'six'. यह एक तरह से इंस्टॉल किया गया प्रोजेक्ट है और इसलिए हम सही तौर पर यह तय नहीं कर सकते कि इससे कौनसी फ़ाइलें जुड़ी हैं, जिसकी वजह से कुछ ही हिस्सों को अनइंस्टॉल कर दिया जाएगा.&कोटेशन;

जब पीआईपी पहले से इंस्टॉल किए गए six पैकेज को अपग्रेड करने की कोशिश करता है, तब यह गड़बड़ी Mac OS पर होती है. इस समस्या को हल करने के लिए, फ़्लैग --ignore-installed six को दूसरे चरण में दिए गए pip install निर्देश में जोड़ें.

This app isn't verified

अगर OAuth के लिए सहमति वाली स्क्रीन पर चेतावनी दिखती है, तो इस ऐप्लिकेशन की पुष्टि #&930 नहीं होती. साथ ही, आपका ऐप्लिकेशन ऐसे दायरे का अनुरोध कर रहा है जो उपयोगकर्ता के संवेदनशील डेटा को ऐक्सेस करते हैं. अगर आपका ऐप्लिकेशन संवेदनशील दायरों का इस्तेमाल करता है, तो उस चेतावनी और दूसरी सीमाओं को हटाने के लिए आपके ऐप्लिकेशन को पुष्टि की प्रक्रिया से गुज़रना होगा. डेवलपमेंट के दौरान, आप बेहतर > {Project Name} पर जाएं (असुरक्षित) चुनकर इस चेतावनी को जारी रख सकते हैं.

File not found error for credentials.json

नमूना चलाने पर, आपको कोई फ़ाइल नहीं मिली या क्रेडेंशियल.json के बारे में ऐसी कोई गड़बड़ी नहीं मिल सकती.

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

क्रेडेंशियल बनाने के बाद, पक्का करें कि डाउनलोड की गई JSON फ़ाइल credentials.json के तौर पर सेव हो. फिर फ़ाइल को बाकी नमूना नमूने के साथ अपनी काम करने वाली निर्देशिका में ले जाएं.

इसके बारे में और पढ़ें

इस क्विकस्टार्ट में इस्तेमाल किए गए एपीआई के बारे में ज़्यादा जानकारी के लिए, नीचे दिया गया लेख देखें: