Verwenden Ihre Nutzer Classroom mit Google Meet? Weitere Informationen finden Sie unter Apps Script – Kurzanleitung.

Python Schnellstart

Führen Sie die restlichen Schritte der Anleitung auf dieser Seite aus, um eine einfache Python-Befehlszeile zu erstellen, die Anfragen an die Classroom API sendet.

Vorbereitung

Für diese Kurzanleitung werden folgende Voraussetzungen erfüllt:

  • Python 2.6 oder höher
  • Das Paketverwaltungstool pip
  • Ein Google Cloud Platform-Projekt mit aktivierter API. Informationen zum Erstellen eines Projekts und zum Aktivieren einer API finden Sie unter Projekt erstellen und API aktivieren.
  • Anmeldedaten für die Autorisierung einer Desktopanwendung. Informationen zum Erstellen von Anmeldedaten für eine Desktopanwendung finden Sie unter Anmeldedaten erstellen.

  • Ein G Suite for Education-Konto mit aktiviertem Google Classroom.

Schritt 1: Google-Clientbibliothek installieren

Führen Sie den folgenden Befehl aus, um die Google-Clientbibliothek für Python zu installieren:

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

Informationen zu alternativen Installationsoptionen finden Sie im Abschnitt "Installation" der Python-Bibliothek.

Schritt 2: Beispiel konfigurieren

So konfigurieren Sie das Beispiel:

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen quickstart.py.
  2. Fügen Sie den folgenden Code in quickstart.py ein:

    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()

Schritt 3: Beispiel ausführen

So führen Sie das Beispiel aus:

  1. Führen Sie in der Befehlszeile den folgenden Befehl aus:

    python quickstart.py
    
  2. Optional: Wenn Sie das Beispiel zum ersten Mal ausführen, wird ein neues Fenster geöffnet, in dem Sie aufgefordert werden, den Zugriff auf Ihre Daten zu autorisieren:

    1. Wenn Sie noch nicht in Ihrem Google-Konto angemeldet sind, werden Sie aufgefordert, das nachzuholen. Wenn Sie in mehreren Google-Konten angemeldet sind, werden Sie aufgefordert, ein Konto für die Autorisierung auszuwählen.
    1. Klicken Sie auf Akzeptieren. Die App ist für den Zugriff auf Ihre Daten autorisiert.
  3. Das Beispiel wird ausgeführt.

Falls Probleme auftreten, lesen Sie den Abschnitt Beispiel zur Fehlerbehebung.

Beispielfehler beheben

In diesem Abschnitt werden einige häufige Probleme beschrieben, die beim Versuch, diese Kurzanleitung auszuführen, auftreten können, sowie Lösungsvorschläge.

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

Dieser Fehler kann in Mac OS X auftreten, wo die Standardinstallation des six-Moduls (eine Abhängigkeit der Python-Bibliothek) vor der Installation des pip-Dienstes geladen wird. Fügen Sie der System-Umgebungsvariablen PYTHONPATH den Installationspfad von pip hinzu, um das Problem zu beheben:

  1. Ermitteln Sie den Installationspfad von pip mit dem folgenden Befehl:

    pip show six | grep "Location:" | cut -d " " -f2
    
  2. Fügen Sie der Datei ~/.bashrc die folgende Zeile hinzu und ersetzen Sie dabei <pip_install_path> durch den oben ermittelten Wert:

    export PYTHONPATH=$PYTHONPATH:<pip_install_path>
    
  3. Laden Sie die Datei ~/.bashrc mit dem folgenden Befehl in allen geöffneten Terminalfenstern neu:

    source ~/.bashrc
    

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

Dieser Fehler wird durch einen Programmfehler in httplib2 verursacht. Führen Sie mit dem folgenden Befehl ein Upgrade auf die neueste Version von httplib2 aus, um dieses Problem zu beheben:

pip install --upgrade httplib2

Cannot uninstall 'six'

Wenn Sie den Befehl pip install ausführen, wird möglicherweise die folgende Fehlermeldung angezeigt:

'Six“ kann nicht deinstalliert werden. Es ist ein installiertes Projekt distexputils“ und wir können daher nicht genau bestimmen, welche Dateien zu diesem Projekt gehören, was nur zu einer teilweisen Deinstallation führen würde.“

Dieser Fehler tritt unter Mac OS X auf, wenn pip versucht, ein Upgrade des vorinstallierten Pakets six durchzuführen. Zur Umgehung dieses Problems fügen Sie das Flag --ignore-installed six dem in Schritt 2 aufgeführten Befehl pip install hinzu.

This app isn't verified

Wenn im OAuth-Zustimmungsbildschirm die Warnung "Diese Anwendung ist nicht verifiziert" angezeigt wird, fordert Ihre Anwendung Bereiche an, die Zugriff auf vertrauliche Nutzerdaten gewähren. Wenn die Anwendung sensible Bereiche verwendet, muss sie den Bestätigungsprozess durchlaufen, um diese Warnung und andere Einschränkungen zu entfernen. Sie können diese Warnung in der Entwicklungsphase fortsetzen, indem Sie auf Advanced > Go to {Project Name} (unsafe) klicken.

File not found error for credentials.json

Wenn Sie das Beispiel ausführen, erhalten Sie möglicherweise eine Datei, die nicht gefunden wurde, oder keinen Dateifehler in der Datei credentials.json.

Dieser Fehler tritt auf, wenn Sie die Anmeldedaten für Desktopanwendungen nicht wie oben im Abschnitt Voraussetzungen beschrieben autorisiert haben. Informationen zum Erstellen von Anmeldedaten für eine Desktopanwendung finden Sie unter Anmeldedaten erstellen.

Nachdem Sie die Anmeldedaten erstellt haben, muss die heruntergeladene JSON-Datei als credentials.json gespeichert sein. Verschieben Sie die Datei dann zusammen mit dem Rest des Kurzanleitungscodes in Ihr Arbeitsverzeichnis.

Weitere Informationen

Weitere Informationen zu den in dieser Kurzanleitung verwendeten APIs finden Sie hier: