Guía de inicio rápido de Ruby

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

Prerequisites

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

  • Credenciales de autorización para una aplicación de escritorio. Si quieres aprender a 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

Ejecuta el siguiente comando para instalar la biblioteca:

gem install google-api-client

Consulta la página de instalación de la biblioteca para ver las opciones de instalación alternativas.

Paso 2: Configura la muestra

Crea un archivo llamado quickstart.rb en tu directorio de trabajo y copia en el siguiente código:

Classroom/quickstart/quickstart.rb.
require "google/apis/classroom_v1"
require "googleauth"
require "googleauth/stores/file_token_store"
require "fileutils"

OOB_URI = "urn:ietf:wg:oauth:2.0:oob".freeze
APPLICATION_NAME = "Classroom API Ruby Quickstart".freeze
CREDENTIALS_PATH = "credentials.json".freeze
# The file token.yaml stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
TOKEN_PATH = "token.yaml".freeze
SCOPE = Google::Apis::ClassroomV1::AUTH_CLASSROOM_COURSES_READONLY

##
# Ensure valid credentials, either by restoring from the saved credentials
# files or intitiating an OAuth2 authorization. If authorization is required,
# the user's default browser will be launched to approve the request.
#
# @return [Google::Auth::UserRefreshCredentials] OAuth2 credentials
def authorize
  client_id = Google::Auth::ClientId.from_file CREDENTIALS_PATH
  token_store = Google::Auth::Stores::FileTokenStore.new file: TOKEN_PATH
  authorizer = Google::Auth::UserAuthorizer.new client_id, SCOPE, token_store
  user_id = "default"
  credentials = authorizer.get_credentials user_id
  if credentials.nil?
    url = authorizer.get_authorization_url base_url: OOB_URI
    puts "Open the following URL in the browser and enter the " \
         "resulting code after authorization:\n" + url
    code = gets
    credentials = authorizer.get_and_store_credentials_from_code(
      user_id: user_id, code: code, base_url: OOB_URI
    )
  end
  credentials
end

# Initialize the API
service = Google::Apis::ClassroomV1::ClassroomService.new
service.client_options.application_name = APPLICATION_NAME
service.authorization = authorize

# List the first 10 courses the user has access to.
response = service.list_courses page_size: 10

puts "Courses:"
puts "No courses found" if response.courses.empty?
response.courses.each do |course|
  puts "- #{course.name} (#{course.id})"
end

Paso 3: Ejecuta la muestra

Ejecuta la muestra con el siguiente comando:

ruby quickstart.rb

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

  1. En esta muestra, se 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 cuenta para usar en la autorización.

  2. Haga clic en el botón Aceptar.
  3. La muestra se realiza 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 solicitan autorización.
  • El flujo de autorización de este ejemplo está diseñado para una aplicación de línea de comandos. Si quieres obtener información para realizar una autorización en una aplicación web, consulta Usa OAuth 2.0 para aplicaciones de servidor web.

Solución de problemas

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

This app isn't verified

Si en la pantalla de consentimiento de OAuth se muestra la advertencia "Esta app no se verificó", significa que esta 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, puedes continuar con esta advertencia si seleccionas Advanced &gt, Go to {Project Name}(no seguro).

File not found error for credentials.json

Cuando ejecutes el ejemplo, es posible que recibas un archivo no encontrado o que no haya ningún error de archivo relacionado con credenciales.json.

Este error se produce cuando no autorizas las credenciales de la aplicación de escritorio como se detalla en la sección Requisitos previos anterior. Si quieres obtener más 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 al 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 la sección google-api-ruyby-client de GitHub.