Краткое руководство по Ruby

Выполните инструкции на этой странице, и примерно через пять минут у вас будет простое приложение командной строки на Ruby, которое отправляет запросы к YouTube Data API.

В образце кода, используемом в этом руководстве, извлекается ресурс channel для канала GoogleDevelopers на YouTube и выводится основная информация из этого ресурса.

Требования

Чтобы выполнить инструкции из этого руководства, вам потребуется:

  • Ruby 2.0 или более поздней версии.
  • Доступ к интернету и веб-браузер.
  • Аккаунт Google.

Шаг 1. Включите YouTube Data API

  1. Воспользуйтесь этим мастером, чтобы создать или выбрать проект в Google Developers Console и автоматически включить API. Нажмите Продолжить, а затем Перейти к учетным данным.

  2. На странице Создать учетные данные нажмите кнопку Отменить.

  3. В верхней части страницы выберите вкладку Окно запроса доступа OAuth. Выберите Адрес электронной почты, введите Название товара, если оно ещё не указано, и нажмите кнопку Сохранить.

  4. Перейдите на вкладку Учетные данные, нажмите кнопку Создать учетные данные и выберите Идентификатор клиента OAuth.

  5. Выберите тип приложения Другое, введите название "YouTube Data API Quickstart" и нажмите кнопку Создать.

  6. Чтобы закрыть появившееся диалоговое окно, нажмите ОК.

  7. Нажмите кнопку (Скачать JSON) справа от идентификатора клиента.

  8. Переместите скачанный файл в рабочий каталог и переименуйте его в client_secret.json.

Шаг 2. Установите клиентскую библиотеку Google

Чтобы установить библиотеку, выполните следующую команду:

gem install google-api-client

Альтернативные варианты установки приведены на странице установки библиотеки.

Шаг 3. Настройте образец

Создайте в рабочем каталоге файл с названием quickstart.rb и скопируйте в него следующий код:

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

Шаг 4. Запустите пример

Выполните пример с помощью следующей команды:

ruby quickstart.rb

При первом запуске образца появится запрос на авторизацию доступа:

  1. Пример пытается открыть новое окно или вкладку в браузере по умолчанию. Если это не сработает, скопируйте URL из консоли и откройте его в браузере вручную.

    Если вы ещё не вошли в аккаунт Google, вам будет предложено это сделать. Если вы вошли в несколько аккаунтов Google, вам будет предложено выбрать один из них для авторизации.

  2. Нажмите кнопку Принять.
  3. Скопируйте полученный код, вставьте его в командную строку и нажмите Ввод. Код может появиться в URL страницы, на которую вы будете перенаправлены после авторизации:

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

Примечания

  • Информация об авторизации хранится в файловой системе, поэтому при последующих запусках авторизация не потребуется.
  • Процесс авторизации в этом примере предназначен для приложения командной строки. Информацию о том, как выполнить авторизацию в веб-приложении, можно найти в статье Использование OAuth 2.0 для веб-серверных приложений.

Дополнительные сведения