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 invia richieste all'API YouTube Data.

Il codice campione utilizzato in questa guida recupera la risorsa channel per il canale YouTube GoogleDevelopers e stampa alcune informazioni di base della 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 in Google Developers Console e attivare automaticamente l'API. Fai clic su Continua e poi su Vai alle credenziali.

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

  3. Nella parte superiore della pagina, seleziona la scheda Schermata 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 di dati di YouTube" e fai clic sul pulsante Crea.

  6. Fai clic su OK per ignorare la finestra di dialogo visualizzata.

  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 di 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 l'esempio

Crea un file denominato quickstart.rb nella directory di lavoro e copialo nel 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 l'esempio

Esegui l'esempio utilizzando il comando seguente:

ruby quickstart.rb

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

  1. L'esempio cerca di aprire una nuova finestra o scheda in un 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 farlo. Se hai eseguito l'accesso a più Account Google, ti verrà 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 vieni reindirizzato 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 la pagina relativa all'utilizzo di OAuth 2.0 per le applicazioni server web.

Per approfondire