Guida rapida di Ruby

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

Prerequisiti

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

  • 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, esegui il comando seguente:

gem install google-api-client

Consulta la pagina di installazione della libreria per conoscere le opzioni di installazione alternative.

Passaggio 2: configura l'anteprima

Crea un file denominato quickstart.rb nella directory di lavoro e copialo nel seguente codice:

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

Passaggio 3: esegui l'esempio

Esegui l'esempio utilizzando il seguente comando:

ruby quickstart.rb

La prima volta che esegui l'esempio, ti viene chiesto di autorizzare l'accesso:

  1. L'esempio tenta di aprire una nuova finestra o scheda nel browser predefinito. Se il problema persiste, copia l'URL dalla console e aprilo manualmente nel browser.

    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.

  2. Fai clic sul pulsante Accetta.
  3. L'esempio procede automaticamente e puoi chiudere la finestra/la scheda.

Note

  • Le informazioni di autorizzazione vengono archiviate nel file system, quindi le successive esecuzioni non richiedono l'autorizzazione.
  • Il flusso di autorizzazione in questo esempio è progettato per un'applicazione a riga di comando. Per informazioni su come eseguire l'autorizzazione in un'applicazione web, consulta Utilizzo di OAuth 2.0 per applicazioni web server.

Risoluzione dei problemi

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

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 saperne di più sulle API utilizzate in questa guida rapida, consulta la sezione su google-api-ruyby-client di GitHub.