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

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

  1. Вы будете использовать ключ API, который идентифицирует ваше приложение, чтобы получить информацию о канале GoogleDevelopers на YouTube.
  2. Вы будете использовать идентификатор клиента OAuth 2.0, чтобы отправить авторизованный запрос на получение информации о вашем канале YouTube.

Требования

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

Шаг 1. Настройте проект и учетные данные

Создайте или выберите проект в Cloud Console. Выполните следующие действия в Cloud Console для своего проекта:

  1. На панели библиотеки найдите YouTube Data API v3. Нажмите на нужный API и убедитесь, что он включен для вашего проекта.

  2. На панели учетных данных создайте два набора учетных данных:

    1. Создайте ключ API. Он понадобится для выполнения запросов к API, не требующих авторизации пользователя. Например, для получения информации об общедоступном канале YouTube не требуется авторизация пользователя.

    2. Создайте идентификатор клиента OAuth 2.0. В качестве типа приложения выберите Компьютерное приложение. Учетные данные OAuth 2.0 необходимы для запросов, требующих авторизации пользователя. Например, чтобы получить информацию о канале YouTube, принадлежащем пользователю, который прошел аутентификацию, необходимо разрешение этого пользователя.

      Скачайте JSON-файл с учетными данными OAuth 2.0. Файл имеет название, похожее на client_secret_CLIENTID.json, где CLIENTID – идентификатор клиента для вашего проекта.

Шаг 2. Подготовьте проект

Чтобы подготовить проект Gradle, выполните следующие действия:

  1. В рабочем каталоге выполните следующие команды, чтобы создать структуру нового проекта:

    $ gradle init --type basic
    $ mkdir -p src/main/java src/main/resources
    
  2. Переместите JSON-файл, скачанный после создания идентификатора клиента OAuth 2.0, в каталог src/main/resources, расположенный ниже рабочего каталога, и переименуйте файл в client_secret.json.

  3. Откройте файл build.gradle в рабочем каталоге и замените его содержимое следующим:

    apply plugin: 'java'
    apply plugin: 'application'
    
    mainClassName = 'ApiExample'
    sourceCompatibility = 1.7
    targetCompatibility = 1.7
    version = '1.0'
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        compile 'com.google.api-client:google-api-client:1.23.0'
        compile 'com.google.oauth-client:google-oauth-client-jetty:1.23.0'
        compile 'com.google.apis:google-api-services-youtube:v3-revREVISION-CL_VERSION'
    }
  4. В файле build.gradle вам нужно заменить переменные REVISION и CL_VERSION двумя значениями из документации по клиентской библиотеке для YouTube Data API. На скриншоте ниже показано, где эти переменные находятся на странице документации YouTube Analytics API.

    Скриншот справочника JavaDoc, на котором показано, как найти значения переменных REVISION и CL_VERSION

Шаг 3. Настройте и запустите пример

Используйте виджет API Explorer на боковой панели, чтобы получить образец кода для извлечения информации о канале GoogleDevelopers на YouTube. В этом запросе для идентификации приложения используется ключ API, и он не требует авторизации пользователя или каких-либо специальных разрешений от пользователя, запускающего пример.

  1. Откройте документацию по методу channels.list API.
  2. В разделе "Распространенные варианты использования" на этой странице есть таблица, в которой объясняется несколько распространенных способов использования метода. Первый список в таблице предназначен для вывода результатов по идентификатору канала.

    Нажмите на значок кода для первого адреса, чтобы открыть и заполнить полноэкранный API Explorer.

    Изображение, на котором показано, где находится ссылка на символ кода в таблице со способами использования в документации channels.list. Альтернативный текст для этого изображения идентифицирует изображение как символ кода и указывает вариант использования, связанный с этой ссылкой.

  3. В левой части полноэкранного режима API Explorer показано следующее:

    1. Под заголовком Request parameters (Параметры запроса) перечислены параметры, которые поддерживает метод. Необходимо задать значения параметров part и id. Значение параметра id – UC_x5XG1OV2P6uZZ5FSM9Ttw – это идентификатор канала GoogleDevelopers на YouTube.

    2. Под параметрами находится раздел Учетные данные. В раскрывающемся меню этого раздела должно быть выбрано значение API key (Ключ API). По умолчанию в API Explorer используются демонстрационные учетные данные. Но для локального запуска примера вы будете использовать собственный ключ API.

      Изображение, на котором показаны учетные данные в полноэкранном режиме API Explorer и раскрывающееся меню с выбранным вариантом "Ключ API".

  4. В правой части окна API Explorer в полноэкранном режиме показаны вкладки с примерами кода на разных языках. Выберите вкладку Java.

  5. Скопируйте пример кода и сохраните его в файле с названием src/main/java/ApiExample.java. Во всех примерах используется одно и то же название класса (ApiExample), поэтому вам не нужно изменять файл build.gradle, чтобы запустить разные примеры.

  6. В скачанном образце найдите строку YOUR_API_KEY и замените ее на ключ API, созданный на шаге 1.

  7. Запустите пример из командной строки. В рабочем каталоге выполните следующую команду:

    gradle -q run

  8. Пример должен выполнить запрос и вывести ответ в STDOUT.

Шаг 4. Выполните авторизованный запрос

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

  1. Вернитесь к документации по методу channels.list.

  2. В разделе "Распространенные варианты использования" нажмите на символ кода для третьего варианта в таблице. В этом случае вызывается метод list для "моего канала".

  3. В левой части полноэкранного API Explorer вы увидите список параметров, за которым следует раздел Credentials (Учетные данные). Однако в этом примере есть два отличия от того, в котором вы получали информацию о канале GoogleDevelopers:

    1. В разделе параметров вместо значения параметра id должно быть задано значение параметра mine – true. Это указывает серверу API на то, что нужно получить информацию о канале текущего авторизованного пользователя.

    2. В разделе Учетные данные в раскрывающемся меню должен быть выбран вариант Google OAuth 2.0.

      Кроме того, если вы нажмете на ссылку Показать области действия, должна быть выбрана область действия https://www.googleapis.com/auth/youtube.readonly.

      Изображение, на котором показаны области действия в полноэкранном режиме Google API Explorer и выбран вариант использования учетных данных Google OAuth 2.0.

  4. Как и в предыдущем примере, выберите вкладку Java, скопируйте образец кода и сохраните его в файле src/main/java/ApiExample.java.

  5. Запустите пример из командной строки. В рабочем каталоге выполните следующую команду:

    gradle -q run

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

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

  7. Нажмите кнопку, чтобы предоставить приложению доступ к областям действия, указанным в примере кода.

  8. Пример будет выполнен автоматически, и вы сможете закрыть вкладку браузера, которая использовалась для аутентификации.

    Ответ API снова должен быть выведен в STDOUT.

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