Guide de démarrage rapide pour Ruby

Suivez les étapes décrites sur cette page. En cinq minutes environ, vous disposerez d'une application de ligne de commande Ruby simple qui envoie des requêtes à l'API YouTube Data.

L'exemple de code utilisé dans ce guide récupère la ressource channel pour la chaîne YouTube GoogleDevelopers et affiche des informations de base à partir de cette ressource.

Prérequis

Pour exécuter ce guide de démarrage rapide, vous avez besoin des éléments suivants :

  • Ruby 2.0 ou version ultérieure.
  • Accès à Internet et à un navigateur Web.
  • Un compte Google.

Étape 1 : Activez l'API YouTube Data

  1. Utilisez cet assistant pour créer ou sélectionner un projet dans la Google Developers Console et activer automatiquement l'API. Cliquez sur Continuer, puis sur Accéder à Identifiants.

  2. Sur la page Créer des identifiants, cliquez sur le bouton Annuler.

  3. En haut de la page, sélectionnez l'onglet OAuth consent screen (Écran d'autorisation OAuth). Sélectionnez une adresse e-mail, saisissez un nom de produit s'il n'est pas déjà défini, puis cliquez sur le bouton Enregistrer.

  4. Sélectionnez l'onglet Identifiants, cliquez sur le bouton Créer des identifiants, puis sélectionnez ID client OAuth.

  5. Sélectionnez le type d'application Autre, saisissez le nom "Démarrage rapide de l'API YouTube Data", puis cliquez sur le bouton Créer.

  6. Cliquez sur OK pour fermer la boîte de dialogue qui s'affiche.

  7. Cliquez sur le bouton (Télécharger JSON) à droite de l'ID client.

  8. Déplacez le fichier téléchargé vers votre répertoire de travail et renommez-le client_secret.json.

Étape 2 : Installez la bibliothèque cliente Google

Exécutez la commande suivante pour installer la bibliothèque :

gem install google-api-client

Consultez la page d'installation de la bibliothèque pour connaître les autres options d'installation.

Étape 3 : Configurer l'exemple

Créez un fichier nommé quickstart.rb dans votre répertoire de travail et copiez-y le code suivant :

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

Étape 4 : Exécuter l'exemple

Exécutez l'exemple à l'aide de la commande suivante :

ruby quickstart.rb

La première fois que vous exécutez l'exemple, vous êtes invité à autoriser l'accès :

  1. L'exemple tente d'ouvrir une nouvelle fenêtre ou un nouvel onglet dans votre navigateur par défaut. Si cela ne fonctionne pas, copiez l'URL depuis la console et ouvrez-la manuellement dans votre navigateur.

    Si vous n'êtes pas encore connecté à votre compte Google, vous êtes invité à le faire. Si vous êtes connecté à plusieurs comptes Google, vous êtes invité à en sélectionner un pour l'autorisation.

  2. Cliquez sur le bouton Accepter.
  3. Copiez le code qui vous est fourni, collez-le dans l'invite de ligne de commande, puis appuyez sur Entrée. Le code peut apparaître dans l'URL de la page vers laquelle vous êtes redirigé après avoir accordé l'autorisation :

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

Remarques

  • Les informations d'autorisation sont stockées dans le système de fichiers. Les exécutions ultérieures ne vous demanderont donc pas d'autorisation.
  • Dans cet exemple, le flux d'autorisation est conçu pour une application en ligne de commande. Pour savoir comment effectuer l'autorisation dans une application Web, consultez Utiliser OAuth 2.0 pour les applications de serveur Web.

Documentation complémentaire