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

В приведенном ниже примере кода используется клиентская библиотека Google API для 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 Console .
  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>