Guía de inicio rápido de Python

Completa los pasos descritos en el resto de esta página para crear una aplicación de línea de comandos de Python simple que realice solicitudes a la API de Classroom.

Prerequisites

Para ejecutar esta guía de inicio rápido, necesitas los siguientes requisitos previos:

  • Python 2.6 o superior.
  • La herramienta de administración de paquetes pip
  • Un proyecto de Google Cloud Platform con la API habilitada Para crear un proyecto y habilitar una API, consulta Crea un proyecto y habilita la API.
  • Credenciales de autorización para una aplicación de escritorio Si quieres obtener información sobre cómo crear credenciales para una aplicación de escritorio, consulta Crea credenciales.

  • Una cuenta de G Suite for Education con Google Classroom habilitado

Paso 1: Instala la biblioteca cliente de Google

A fin de instalar la biblioteca cliente de Google para Python, ejecuta el siguiente comando:

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

Para ver las opciones de instalación alternativas, consulta la sección Instalación de la biblioteca de Python.

Paso 2: Configura la muestra

Para configurar la muestra, haz lo siguiente:

  1. En tu directorio de trabajo, crea un archivo llamado quickstart.py.
  2. Incluye el siguiente código en 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()

Paso 3: Ejecuta la muestra

Realiza lo siguiente para ejecutar la muestra:

  1. Desde la línea de comandos, ejecute el siguiente comando:

    python quickstart.py
    
  2. (opcional). Si es la primera vez que ejecutas la muestra, esta abrirá una ventana nueva que te pedirá que autorices el acceso a tus datos:

    1. Si aún no lo has hecho, se te solicitará que lo hagas. Si accediste a varias Cuentas de Google, se te pedirá que selecciones una cuenta para usar en la autorización.
    1. Haz clic en Aceptar. La app está autorizada para acceder a tus datos.
  3. Se ejecuta la muestra.

Si tienes problemas, consulta la sección Soluciona problemas de la muestra.

Soluciona problemas de la muestra

En esta sección, se describen algunos problemas comunes que puedes encontrar cuando intentas ejecutar esta guía de inicio rápido y se sugieren posibles soluciones.

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

Este error puede ocurrir en Mac OSX, en el que la instalación predeterminada del módulo six (una dependencia de la biblioteca de Python) se carga antes de la que se instaló con pip. Para solucionar el problema, agrega la ubicación de instalación de pip a la variable de entorno del sistema PYTHONPATH:

  1. Determina la ubicación de instalación de pip con el siguiente comando:

    pip show six | grep "Location:" | cut -d " " -f2
    
  2. Agrega la siguiente línea a tu archivo ~/.bashrc y reemplaza <pip_install_path> por el valor determinado anteriormente:

    export PYTHONPATH=$PYTHONPATH:<pip_install_path>
    
  3. Vuelve a cargar el archivo ~/.bashrc en cualquier ventana de la terminal abierta con el siguiente comando:

    source ~/.bashrc
    

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

Este error se debe a un error en httplib2. Para resolver este problema, actualiza a la versión más reciente de httplib2 con este comando:

pip install --upgrade httplib2

Cannot uninstall 'six'

Cuando ejecutes el comando pip install, es posible que recibas el siguiente error:

&No se puede desinstalar 'six'. Es un proyecto instalado de distutils y, por lo tanto, no podemos determinar con precisión qué archivos pertenecen a él, lo que llevaría a una desinstalación parcial.

Este error ocurre en Mac OSX cuando pip intenta actualizar el paquete six preinstalado. Para solucionar este problema, agrega la marca --ignore-installed six al comando pip install que se muestra en el paso 2.

This app isn't verified

Si en la pantalla de consentimiento de OAuth se muestra el mensaje de advertencia "Esta app no está verificada", significa que tu app solicita permisos que proporcionan acceso a datos sensibles del usuario. Si tu aplicación usa permisos sensibles, debe someterse al proceso de verificación para quitar esa advertencia y otras limitaciones. Durante la fase de desarrollo, para continuar más allá de esta advertencia, selecciona Advanced > Go to {Project Name}(no seguro).

File not found error for credentials.json

Cuando ejecutes la muestra, es posible que recibas un archivo no encontrado o que no tenga ese error de credenciales.json.

Este error se produce cuando no autorizas las credenciales de la aplicación para computadoras de escritorio, como se detalla en la sección Requisitos previos anterior. Si quieres obtener información sobre cómo crear credenciales para una aplicación de escritorio, ve a Crea credenciales.

Una vez que crees las credenciales, asegúrate de que el archivo JSON descargado se guarde como credentials.json. Luego, mueve el archivo a tu directorio de trabajo con el resto del código de inicio rápido de muestra.

Lecturas adicionales

Para obtener más información sobre las API que se usan en esta guía de inicio rápido, consulta lo siguiente: