Guía de inicio rápido de Ruby

Completa los pasos descritos en el resto de esta página y, en unos cinco minutos, tendrás una aplicación de línea de comandos de Ruby simple que realiza solicitudes a la API de datos de YouTube.

El código de muestra que se usa en esta guía recupera el recurso channel para el canal de YouTube de GoogleDevelopers y, además, imprime información básica desde ese recurso.

Requisitos previos

Para ejecutar esta guía de inicio rápido, necesitarás lo siguiente:

  • Ruby 2.0 o superior
  • Acceso a Internet y un navegador web
  • Una Cuenta de Google.

Paso 1: Activa la API de datos de YouTube

  1. Usa este asistente para crear o seleccionar un proyecto en Google Developers Console y activar la API automáticamente. Haz clic en Continuar y, luego, en Ir a Credenciales.

  2. En la página Crear credenciales, haz clic en el botón Cancelar.

  3. En la parte superior de la página, seleccione la pestaña OAuth consent screen. Selecciona una Dirección de correo electrónico, ingresa un Nombre del producto si aún no está configurado y haz clic en el botón Guardar.

  4. Selecciona la pestaña Credenciales, haz clic en el botón Crear credenciales y selecciona ID de cliente de OAuth.

  5. Selecciona el tipo de aplicación Otro, ingresa el nombre "Guía de inicio rápido de la API de datos de YouTube" y haz clic en el botón Crear.

  6. Haz clic en Aceptar para descartar el cuadro de diálogo resultante.

  7. Haz clic en el botón (Descargar JSON) a la derecha del ID de cliente.

  8. Mueve el archivo descargado a tu directorio de trabajo y cámbiale el nombre a client_secret.json.

Paso 2: 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 3: Configura la muestra

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

# 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')

Paso 4: Ejecuta la muestra

Ejecuta la muestra con el siguiente comando:

ruby quickstart.rb

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

  1. El ejemplo intenta abrir una ventana o pestaña nueva en el navegador predeterminado. Si esto no funciona, copia la URL de la consola y ábrela en tu navegador de forma manual.

    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. Copia el código que se te proporciona, pégalo en el símbolo de la línea de comandos y presiona Intro. El código puede aparecer en la URL de la página a la que se te redirecciona después de otorgar autorización:

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

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 la autorización en una aplicación web, consulta Usa OAuth 2.0 para aplicaciones de servidor web.

Lecturas adicionales