Примеры кода JavaScript

В приведенном ниже примере кода используется клиентская библиотека API Google для JavaScript . Вы можете скачать этот пример из папки javascript репозитория примеров кода API YouTube на GitHub .

Код запрашивает разрешение пользователя на доступ к области https://www.googleapis.com/auth/yt-analytics.readonly .

return gapi.auth2.getAuthInstance()
    .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"})
    ...

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

Получайте ежедневную статистику канала

В этом примере вызывается API YouTube Analytics для получения ежедневных просмотров и других показателей для канала авторизующего пользователя за 2017 календарный год. В примере используется клиентская библиотека JavaScript API Google .

Настройка учетных данных для авторизации

Прежде чем запускать этот пример локально в первый раз, вам необходимо настроить учетные данные авторизации для вашего проекта:

  1. Создайте или выберите проект в консоли Google API .
  2. Включите API YouTube Analytics для своего проекта.
  3. В верхней части страницы «Учетные данные» выберите вкладку «Экран согласия OAuth» . Выберите адрес электронной почты, введите название продукта, если оно еще не задано, и нажмите кнопку «Сохранить».
  4. На странице «Учетные данные» нажмите кнопку «Создать учетные данные» и выберите «Идентификатор клиента Oauth» .
  5. Выберите тип приложения Веб-приложение.
  6. В поле Авторизованное происхождение JavaScript введите URL-адрес, с которого вы будете обслуживать пример кода. Например, вы можете использовать что-то вроде http://localhost:8000 или http://yourserver.example.com . Поле «Разрешенные URI перенаправления» можно оставить пустым.
  7. Нажмите кнопку «Создать» , чтобы завершить создание учетных данных.
  8. Прежде чем закрыть диалоговое окно, скопируйте идентификатор клиента, который вам нужно будет поместить в пример кода.

Сделайте локальную копию образца

Затем сохраните образец в локальный файл. В примере найдите следующую строку и замените YOUR_CLIENT_ID на идентификатор клиента, который вы получили при настройке учетных данных для авторизации.

gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});

Запустите код

Теперь вы готовы протестировать образец:

  1. Откройте локальный файл в веб-браузере и откройте консоль отладки в браузере. Вы должны увидеть страницу с двумя кнопками.
  2. Нажмите кнопку авторизации и загрузки , чтобы запустить процесс авторизации пользователя. Если вы разрешаете приложению получать данные вашего канала, вы должны увидеть следующие строки, выведенные на консоль браузера:
    Sign-in successful
    GAPI client loaded for API
  3. Если вместо приведенных выше строк вы видите сообщение об ошибке, подтвердите, что вы загружаете сценарий из URI авторизованного перенаправления, который вы настроили для своего проекта, и что вы вставили свой идентификатор клиента в код, как описано выше.
  4. Нажмите кнопку «Выполнить» , чтобы вызвать API. Вы должны увидеть объект response , выводимый на консоль в браузере. В этом объекте свойство result сопоставляется с объектом, содержащим данные API.

Пример кода

<script src="https://apis.google.com/js/api.js"></script>
<script>
  function authenticate() {
    return gapi.auth2.getAuthInstance()
        .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"})
        .then(function() { console.log("Sign-in successful"); },
              function(err) { console.error("Error signing in", err); });
  }
  function loadClient() {
    return gapi.client.load("https://youtubeanalytics.googleapis.com/$discovery/rest?version=v2")
        .then(function() { console.log("GAPI client loaded for API"); },
              function(err) { console.error("Error loading GAPI client for API", err); });
  }
  // Make sure the client is loaded and sign-in is complete before calling this method.
  function execute() {
    return gapi.client.youtubeAnalytics.reports.query({
      "ids": "channel==MINE",
      "startDate": "2017-01-01",
      "endDate": "2017-12-31",
      "metrics": "views,estimatedMinutesWatched,averageViewDuration,averageViewPercentage,subscribersGained",
      "dimensions": "day",
      "sort": "day"
    })
        .then(function(response) {
                // Handle the results here (response.result has the parsed body).
                console.log("Response", response);
              },
              function(err) { console.error("Execute error", err); });
  }
  gapi.load("client:auth2", function() {
    gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});
  });
</script>
<button onclick="authenticate().then(loadClient)">authorize and load</button>
<button onclick="execute()">execute</button>