В приведенном ниже примере кода используется клиентская библиотека 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 .
Настройка учетных данных для авторизации
Прежде чем запускать этот пример локально в первый раз, вам необходимо настроить учетные данные авторизации для вашего проекта:
- Создайте или выберите проект в консоли Google API .
- Включите API YouTube Analytics для своего проекта.
- В верхней части страницы «Учетные данные» выберите вкладку «Экран согласия OAuth» . Выберите адрес электронной почты, введите название продукта, если оно еще не задано, и нажмите кнопку «Сохранить».
- На странице «Учетные данные» нажмите кнопку «Создать учетные данные» и выберите «Идентификатор клиента Oauth» .
- Выберите тип приложения Веб-приложение.
- В поле Авторизованное происхождение JavaScript введите URL-адрес, с которого вы будете обслуживать пример кода. Например, вы можете использовать что-то вроде
http://localhost:8000
илиhttp://yourserver.example.com
. Поле «Разрешенные URI перенаправления» можно оставить пустым. - Нажмите кнопку «Создать» , чтобы завершить создание учетных данных.
- Прежде чем закрыть диалоговое окно, скопируйте идентификатор клиента, который вам нужно будет поместить в пример кода.
Сделайте локальную копию образца
Затем сохраните образец в локальный файл. В примере найдите следующую строку и замените YOUR_CLIENT_ID на идентификатор клиента, который вы получили при настройке учетных данных для авторизации.
gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});
Запустите код
Теперь вы готовы протестировать образец:
- Откройте локальный файл в веб-браузере и откройте консоль отладки в браузере. Вы должны увидеть страницу с двумя кнопками.
- Нажмите кнопку авторизации и загрузки , чтобы запустить процесс авторизации пользователя. Если вы разрешаете приложению получать данные вашего канала, вы должны увидеть следующие строки, выведенные на консоль браузера:
Sign-in successful GAPI client loaded for API
- Если вместо приведенных выше строк вы видите сообщение об ошибке, подтвердите, что вы загружаете сценарий из URI авторизованного перенаправления, который вы настроили для своего проекта, и что вы вставили свой идентификатор клиента в код, как описано выше.
- Нажмите кнопку «Выполнить» , чтобы вызвать 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>