Guida di avvio rapido di Python

Completa i passaggi descritti nel resto di questa pagina per creare una semplice applicazione a riga di comando Python che invia richieste all'API Classroom.

Prerequisiti

Per eseguire questa guida rapida, occorre soddisfare i seguenti prerequisiti:

  • Python 2.6 o versioni successive.
  • Lo strumento di gestione dei pacchetti pip
  • Un progetto Google Cloud Platform con l'API abilitata. Per creare un progetto e abilitare un'API, consulta Creare un progetto e abilitare l'API
  • Credenziali di autorizzazione per un'applicazione desktop. Per informazioni su come creare le credenziali per un'applicazione desktop, consulta l'articolo Creare credenziali.

  • Un account G Suite for Education in cui è abilitato Google Classroom.

Passaggio 1: installa la libreria client Google

Per installare la libreria client Google per Python, esegui questo comando:

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

Per opzioni di installazione alternative, consulta la sezione Installazione della libreria Python.

Passaggio 2: configura l'esempio

Per configurare l'esempio:

  1. Nella directory di lavoro, crea un file denominato quickstart.py.
  2. Includi il seguente codice in quickstart.py:

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

Passaggio 3: esegui l'esempio

Per eseguire l'esempio:

  1. Dalla riga di comando, esegui il comando seguente:

    python quickstart.py
    
  2. (Facoltativo) Se è la prima volta che esegui l'anteprima, viene aperta una nuova finestra che ti chiede di autorizzare l'accesso ai tuoi dati:

    1. Se non hai ancora eseguito l'accesso al tuo Account Google, ti verrà chiesto di accedere. Se hai eseguito l'accesso a più Account Google, ti verrà chiesto di selezionare un account da utilizzare per l'autorizzazione.
    1. Fai clic su Accept (accetta). L'app è autorizzata ad accedere ai tuoi dati.
  3. Il campione viene eseguito.

Se hai problemi, consulta la sezione Risoluzione dei problemi di esempio.

Risolvere i problemi relativi all'esempio

In questa sezione vengono descritti alcuni problemi comuni che potresti riscontrare durante l'esecuzione di questa guida rapida e vengono suggerite possibili soluzioni.

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

Questo errore può verificarsi in Mac OSX, in cui l'installazione predefinita del modulo six (una dipendenza della libreria Python) viene caricata prima di quello installato da pip. Per risolvere il problema, aggiungi la posizione di installazione di pip's alla variabile di ambiente del sistema PYTHONPATH:

  1. Determina il percorso di installazione di pip' con questo comando:

    pip show six | grep "Location:" | cut -d " " -f2
    
  2. Aggiungi la seguente riga al file ~/.bashrc, sostituendo <pip_install_path> con il valore determinato sopra:

    export PYTHONPATH=$PYTHONPATH:<pip_install_path>
    
  3. Ricarica il file ~/.bashrc in qualsiasi finestra del terminale aperta utilizzando il seguente comando:

    source ~/.bashrc
    

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

Questo errore è dovuto a un bug in httplib2. Per risolvere il problema, esegui l'upgrade alla versione più recente di httplib2 utilizzando questo comando:

pip install --upgrade httplib2

Cannot uninstall 'six'

Quando esegui il comando pip install, potresti ricevere il seguente errore:

"Impossibile disinstallare 'six'. Si tratta di un progetto installato distutils, quindi non possiamo stabilire con precisione a quali file appartiene, il che comporterebbe solo una disinstallazione parziale."

Questo errore si verifica su Mac OSX quando pip tenta di eseguire l'upgrade del pacchetto six preinstallato. Per risolvere il problema, aggiungi il flag --ignore-installed six al comando pip install indicato nel passaggio 2.

This app isn't verified

Se nella schermata per il consenso OAuth viene visualizzato l'avviso "Questa app non è verificata", l'app richiede ambiti che consentono l'accesso ai dati utente sensibili. Se la tua applicazione utilizza ambiti sensibili, la tua app deve essere sottoposta al processo di verifica per rimuovere l'avviso e altre limitazioni. Durante la fase di sviluppo, puoi continuare a seguire l'avviso selezionando Advanced > Go to {Project Name}(unsafe).

File not found error for credentials.json

Durante l'esecuzione dell'esempio, potresti ricevere un file non trovato o non è presente alcun errore del file relativo alle credenziali.json.

Questo errore si verifica quando non hai autorizzato le credenziali dell'applicazione desktop come descritto nella sezione precedente Prerequisiti. Per informazioni su come creare le credenziali per un'applicazione desktop, vai a Creare credenziali.

Dopo aver creato le credenziali, assicurati che il file JSON scaricato venga salvato come credentials.json. Dopodiché sposta il file nella directory di lavoro con il resto del codice di esempio della guida rapida.

Per approfondire

Per ulteriori informazioni sulle API utilizzate in questa guida rapida, consulta quanto segue: