Ruby-Kurzanleitung

Führen Sie die Schritte auf dieser Seite aus. In etwa fünf Minuten haben Sie eine einfache Ruby-Befehlszeilenanwendung, mit der Anfragen an die YouTube Data API gesendet werden.

Der in diesem Leitfaden verwendete Beispielcode ruft die channel-Ressource für den YouTube-Kanal GoogleDevelopers ab und gibt einige grundlegende Informationen aus dieser Ressource aus.

Vorbereitung

Für diese Kurzanleitung benötigen Sie Folgendes:

  • Ruby 2.0 oder höher.
  • Zugriff auf das Internet und einen Webbrowser.
  • Ein Google-Konto.

Schritt 1: YouTube Data API aktivieren

  1. Mit diesem Assistenten können Sie ein Projekt in der Google Developers Console erstellen oder auswählen und die API automatisch aktivieren. Klicken Sie auf Weiter und dann auf Zu den Anmeldedaten.

  2. Klicken Sie auf der Seite Anmeldedaten erstellen auf die Schaltfläche Abbrechen.

  3. Klicken Sie oben auf der Seite auf den Tab OAuth-Zustimmungsbildschirm. Wählen Sie eine E‑Mail-Adresse aus, geben Sie einen Produktnamen ein, falls noch nicht festgelegt, und klicken Sie auf die Schaltfläche Speichern.

  4. Wählen Sie den Tab Anmeldedaten aus, klicken Sie auf die Schaltfläche Anmeldedaten erstellen und wählen Sie OAuth-Client-ID aus.

  5. Wählen Sie den Anwendungstyp Andere aus, geben Sie den Namen „YouTube Data API Quickstart“ ein und klicken Sie auf die Schaltfläche Erstellen.

  6. Klicken Sie auf OK , um das angezeigte Dialogfeld zu schließen.

  7. Klicken Sie rechts neben der Client-ID auf die Schaltfläche (JSON herunterladen).

  8. Verschieben Sie die heruntergeladene Datei in Ihr Arbeitsverzeichnis und benennen Sie sie in client_secret.json um.

Schritt 2: Google-Clientbibliothek installieren

Führen Sie den folgenden Befehl aus, um die Bibliothek zu installieren:

gem install google-api-client

Auf der Installations seite der Bibliothek finden Sie alternative Installationsoptionen.

Schritt 3: Beispiel einrichten

Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen quickstart.rb und kopieren Sie den folgenden Code hinein:

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

Schritt 4: Beispiel ausführen

Führen Sie das Beispiel mit dem folgenden Befehl aus:

ruby quickstart.rb

Wenn Sie das Beispiel zum ersten Mal ausführen, werden Sie aufgefordert, den Zugriff zu autorisieren:

  1. Das Beispiel versucht, ein neues Fenster oder einen neuen Tab in Ihrem Standardbrowser zu öffnen. Wenn das nicht funktioniert, kopieren Sie die URL aus der Konsole und öffnen Sie sie manuell in Ihrem Browser.

    Wenn Sie noch nicht in Ihrem Google-Konto angemeldet sind, werden Sie aufgefordert, sich anzumelden. Wenn Sie in mehreren Google-Konten angemeldet sind, werden Sie aufgefordert, ein Konto für die Autorisierung auszuwählen.

  2. Klicken Sie auf die Schaltfläche Akzeptieren.
  3. Kopieren Sie den angezeigten Code, fügen Sie ihn in die Eingabeaufforderung ein und drücken Sie die Eingabetaste. Der Code kann in der URL der Seite angezeigt werden, zu der Sie nach der Autorisierung weitergeleitet werden:

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

Hinweise

  • Die Autorisierungsinformationen werden im Dateisystem gespeichert. Bei nachfolgenden Ausführungen werden Sie daher nicht mehr zur Autorisierung aufgefordert.
  • Der Autorisierungsablauf in diesem Beispiel ist für eine Befehlszeilenanwendung konzipiert. Informationen zur Autorisierung in einer Web anwendung finden Sie unter OAuth 2.0 für Webserveranwendungen verwenden.

Weitere Informationen