Выполните шаги, описанные в оставшейся части этой страницы, и примерно через пять минут у вас будет простое приложение командной строки Ruby, которое будет отправлять запросы к API данных YouTube.
Пример кода, используемый в этом руководстве, извлекает ресурсchannel
для канала GoogleDevelopers на YouTube и выводит некоторую базовую информацию из этого ресурса.Предпосылки
Для запуска этого быстрого старта вам понадобится:
- Ruby 2.0 или выше.
- Доступ к Интернету и веб-браузеру.
- Аккаунт Google.
Шаг 1: включите API данных YouTube
Используйте этот мастер для создания или выбора проекта в консоли Google Developers Console и автоматического включения API. Нажмите «Продолжить» , затем «Перейти к учётным данным» .
На странице «Создание учетных данных» нажмите кнопку «Отмена» .
В верхней части страницы выберите вкладку «Экран согласия OAuth» . Выберите адрес электронной почты , введите название продукта , если оно ещё не задано, и нажмите кнопку « Сохранить» .
Выберите вкладку Учетные данные , нажмите кнопку Создать учетные данные и выберите Идентификатор клиента OAuth .
Выберите тип приложения Другое , введите имя «YouTube Data API Quickstart» и нажмите кнопку Создать .
Нажмите кнопку «ОК» , чтобы закрыть появившееся диалоговое окно.
Нажмите кнопку
(Загрузить JSON) справа от идентификатора клиента.Переместите загруженный файл в рабочий каталог и переименуйте его в
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
При первом запуске образца вам будет предложено разрешить доступ:
Пример пытается открыть новое окно или вкладку в вашем браузере по умолчанию. Если это не удаётся, скопируйте URL из консоли и вручную откройте его в браузере.
Если вы еще не вошли в свою учетную запись Google, вам будет предложено сделать это. Если вы вошли в несколько учетных записей Google, вам будет предложено выбрать одну учетную запись для авторизации.
- Нажмите кнопку «Принять» .
Скопируйте полученный код, вставьте его в командную строку и нажмите Enter . Код может присутствовать в URL-адресе страницы, на которую вы будете перенаправлены после авторизации:
http://localhost/?code=4/nr_1TspmmQPFyifh7nz...OFo#
Примечания
- Информация об авторизации хранится в файловой системе, поэтому при последующих запусках запрашивать авторизацию не придется.
- Процесс авторизации в этом примере разработан для приложения командной строки. Информация о том, как выполнить авторизацию в веб-приложении, представлена в разделе «Использование OAuth 2.0 для приложений веб-сервера» .