Guida rapida di Ruby

Completa i passaggi descritti nel resto di questa pagina e in circa cinque minuti avrai una semplice applicazione a riga di comando Ruby che effettua richieste all'API YouTube Data.

Il codice di esempio utilizzato in questa guida recupera la risorsa channel per il canale YouTube GoogleDevelopers e stampa alcune informazioni di base da questa risorsa.

Prerequisiti

Per eseguire questa guida rapida, devi disporre di:

  • Ruby 2.0 o versioni successive.
  • Accesso a internet e a un browser web.
  • Un Account Google.

Passaggio 1: attiva l'API YouTube Data

  1. Utilizza questa procedura guidata per creare o selezionare un progetto nella Google Developers Console e attivare automaticamente l'API. Fai clic su Continua, quindi su Vai alle credenziali.

  2. Nella pagina Crea credenziali, fai clic sul pulsante Annulla.

  3. Nella parte superiore della pagina, seleziona la scheda Schermata di consenso OAuth. Seleziona un indirizzo email, inserisci un nome prodotto se non è già impostato e fai clic sul pulsante Salva.

  4. Seleziona la scheda Credenziali, fai clic sul pulsante Crea credenziali e seleziona ID client OAuth.

  5. Seleziona il tipo di applicazione Altro, inserisci il nome "Guida rapida all'API YouTube Data" e fai clic sul pulsante Crea.

  6. Fai clic su Ok per chiudere la finestra di dialogo risultante.

  7. Fai clic sul pulsante (Scarica JSON) a destra dell'ID client.

  8. Sposta il file scaricato nella directory di lavoro e rinominalo client_secret.json.

Passaggio 2: installa la libreria client Google

Esegui questo comando per installare la libreria:

gem install google-api-client

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

Passaggio 3: configura il campione

Crea un file denominato quickstart.rb nella directory di lavoro e copia il seguente codice:

# Sample Ruby code for user authorization

require 'rubygems'
gem 'google-api-client', '>0.7'
require 'google/apis'
require 'google/apis/youtube_v3'
require 'googleauth'
require 'googleauth/stores/file_token_store'

require 'fileutils'
require 'json'

# REPLACE WITH VALID REDIRECT_URI FOR YOUR CLIENT
REDIRECT_URI = 'http://localhost'
APPLICATION_NAME = 'YouTube Data API Ruby Tests'

# REPLACE WITH NAME/LOCATION OF YOUR client_secrets.json FILE
CLIENT_SECRETS_PATH = 'client_secret.json'

# REPLACE FINAL ARGUMENT WITH FILE WHERE CREDENTIALS WILL BE STORED
CREDENTIALS_PATH = File.join(Dir.home, '.credentials',
                             "youtube-quickstart-ruby-credentials.yaml")

# SCOPE FOR WHICH THIS SCRIPT REQUESTS AUTHORIZATION
SCOPE = Google::Apis::YoutubeV3::AUTH_YOUTUBE_READONLY

def authorize
  FileUtils.mkdir_p(File.dirname(CREDENTIALS_PATH))

  client_id = Google::Auth::ClientId.from_file(CLIENT_SECRETS_PATH)
  token_store = Google::Auth::Stores::FileTokenStore.new(file: CREDENTIALS_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: REDIRECT_URI)
    puts "Open the following URL in the browser and enter the " +
         "resulting code after authorization"
    puts url
    code = gets
    credentials = authorizer.get_and_store_credentials_from_code(
      user_id: user_id, code: code, base_url: REDIRECT_URI)
  end
  credentials
end

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

# Sample ruby code for channels.list

def channels_list_by_username(service, part, **params)
  response = service.list_channels(part, params).to_json
  item = JSON.parse(response).fetch("items")[0]

  puts ("This channel's ID is #{item.fetch("id")}. " +
        "Its title is '#{item.fetch("snippet").fetch("title")}', and it has " +
        "#{item.fetch("statistics").fetch("viewCount")} views.")
end

channels_list_by_username(service, 'snippet,contentDetails,statistics', for_username: 'GoogleDevelopers')

Passaggio 4: esegui il campione

Esegui l'esempio utilizzando questo comando:

ruby quickstart.rb

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

  1. Il campione tenta di aprire una nuova finestra o scheda nel browser predefinito. Se l'operazione non va a buon fine, copia l'URL dalla console e aprilo manualmente nel browser.

    Se non hai ancora eseguito l'accesso al tuo Account Google, ti viene chiesto di farlo. Se hai eseguito l'accesso a più Account Google, ti viene chiesto di selezionarne uno da utilizzare per l'autorizzazione.

  2. Fai clic sul pulsante Accetta.
  3. Copia il codice che ti viene fornito, incollalo nel prompt della riga di comando e premi Invio. Il codice potrebbe essere visualizzato nell'URL della pagina a cui viene reindirizzato l'utente dopo aver concesso l'autorizzazione:

    http://localhost/?code=4/nr_1TspmmQPFyifh7nz...OFo#

Note

  • Le informazioni di autorizzazione vengono archiviate nel file system, quindi le esecuzioni successive non richiederanno 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 l'articolo sull'utilizzo di OAuth 2.0 per applicazioni server web.

Per approfondire