Рубиновый быстрый старт

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

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

Предварительные условия

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

  • Руби 2.0 или выше.
  • Доступ к Интернету и веб-браузеру.
  • Аккаунт Google.

Шаг 1. Включите API данных YouTube.

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

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

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

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

  5. Выберите тип приложения «Другое» , введите имя «Краткий старт API данных YouTube» и нажмите кнопку «Создать» .

  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. Скопируйте полученный код, вставьте его в командную строку и нажмите Enter . Код может появиться в URL-адресе страницы, на которую вы будете перенаправлены после предоставления авторизации:

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

Примечания

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

Дальнейшее чтение