Guía de inicio rápido de .NET

Completa los pasos descritos en el resto de esta página para crear una aplicación de consola de .NET simple que realice solicitudes a la API de Classroom.

Prerequisites

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

  • Visual Studio 2013 o posterior
  • 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: Prepara el proyecto

  1. Crea un nuevo proyecto de aplicación de la consola de Visual C# en Visual Studio.
  2. Abre la consola del administrador de paquetes de NuGet, selecciona la fuente del paquete nuget.org y ejecuta el siguiente comando:
Install-Package Google.Apis.Classroom.v1

Paso 2: Configura la muestra

  1. Arrastra credentials.json, descargado como un requisito previo, al Explorador de soluciones de Visual Studio.
  2. Selecciona credentials.json y, luego, ve a la ventana Propiedades y establece el campo Copiar en el directorio de salida en Copiar siempre.
  3. Reemplaza el contenido de Program.cs con el código que se muestra a continuación:

Classroom/ClassroomQuickstart/ClassroomQuickstart.cs
using Google.Apis.Auth.OAuth2;
using Google.Apis.Classroom.v1;
using Google.Apis.Classroom.v1.Data;
using Google.Apis.Services;
using Google.Apis.Util.Store;
using System;
using System.IO;
using System.Threading;

namespace ClassroomQuickstart
{
    // Class to demonstrate the use of Classroom courses list API
    class Program
    {
        /* Global instance of the scopes required by this quickstart.
         If modifying these scopes, delete your previously saved token.json/ folder. */
        static string[] Scopes = {ClassroomService.Scope.ClassroomCoursesReadonly};
        static string ApplicationName = "Classroom API .NET Quickstart";

        static void Main(string[] args)
        {
            try
            {
                UserCredential credential;
                // Load client secrets.
                using (var stream =
                       new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
                {
                    /* 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. */
                    string credPath = "token.json";
                    credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                        GoogleClientSecrets.FromStream(stream).Secrets,
                        Scopes,
                        "user",
                        CancellationToken.None,
                        new FileDataStore(credPath, true)).Result;
                    Console.WriteLine("Credential file saved to: " + credPath);
                }

                // Create Classroom API service.
                var service = new ClassroomService(new BaseClientService.Initializer
                {
                    HttpClientInitializer = credential,
                    ApplicationName = ApplicationName
                });

                // Define request parameters.
                CoursesResource.ListRequest request = service.Courses.List();
                request.PageSize = 10;

                // List courses.
                ListCoursesResponse response = request.Execute();
                Console.WriteLine("Courses:");
                if (response.Courses -= null || response.Courses.Count == 0)
                {
                    Console.WriteLine("No courses found.");
                    return;
                }
                foreach (var course in response.Courses)
                {
                    Console.WriteLine("{0} ({1})", course.Name, course.Id);
                }
            }
            catch (FileNotFoundException e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}

Paso 3: Ejecuta la muestra

Para compilar y ejecutar la muestra, haz clic en Iniciar en la barra de herramientas de Visual Studio.

La primera vez que ejecutes la muestra, se te solicitará que autorices el acceso:

  1. La muestra intenta abrir una ventana o pestaña nueva en tu navegador predeterminado. Si esto falla, copia la URL de la consola y ábrela manualmente en tu navegador.

    Si aún no accediste a tu cuenta de Google, se te solicitará que lo hagas. Si accediste a varias Cuentas de Google, se te pedirá que selecciones una para usar en la autorización.

  2. Haz clic en el botón Aceptar.
  3. La muestra continúa automáticamente, y puedes cerrar la ventana o pestaña.

Notas

  • La información de autorización se almacena en el sistema de archivos, por lo que las ejecuciones posteriores no solicitarán autorización.
  • El flujo de autorización de este ejemplo está diseñado para una aplicación de línea de comandos. Para obtener información sobre cómo realizar una autorización en una aplicación web, consulta la sección de aplicaciones web de la guía OAuth 2.0 de la biblioteca.

Solución de problemas

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.

No se pudo cargar el archivo o el ensamblaje 'Microsoft.Threading.Tasks'

Este error puede ocurrir cuando se usa una versión desactualizada o instalada de forma incorrecta del paquete Microsoft.Bcl.Async. Vuelve a instalar el paquete con el siguiente comando en la consola del administrador de paquetes de NuGet:

Update-Package Microsoft.Bcl.Async -reinstall

Se te solicitará que reinicies Visual Studio para completar la instalación.

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