En la siguiente muestra de código, se usa la biblioteca cliente de las API de Google para JavaScript. Puedes descargar este ejemplo de la carpeta javascript
del repositorio de muestra de código de las API de YouTube en GitHub.
El código solicita permiso al usuario para acceder al permiso https://www.googleapis.com/auth/yt-analytics.readonly
.
return gapi.auth2.getAuthInstance() .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"}) ...
Es posible que tu aplicación también deba solicitar acceso a otros alcances. Por ejemplo, una aplicación que invoca la API de YouTube Analytics y la API de datos de YouTube pueden necesitar que los usuarios también otorguen acceso a sus cuentas de YouTube. La descripción general de la autorización identifica los ámbitos que generalmente se utilizan en las aplicaciones que invocan la API de YouTube Analytics.
Recuperar las estadísticas diarias del canal
En este ejemplo, se invoca la API de YouTube Analytics para recuperar las vistas diarias y otras métricas del canal del usuario autorizado para el año calendario 2017. La muestra usa la biblioteca cliente de JavaScript de las API de Google.
Configura las credenciales de autorización
Antes de ejecutar esta muestra de manera local por primera vez, debes configurar las credenciales de autorización para tu proyecto:
- Crea o selecciona un proyecto en la Consola de API de Google.
- Habilita la API de YouTube Analytics para tu proyecto.
- En la parte superior de la página Credenciales, selecciona la pestaña Pantalla de consentimiento de OAuth. Seleccione una dirección de correo electrónico, ingrese un nombre de producto (si no lo estableció) y haga clic en el botón Guardar.
- En la página Credenciales, haz clic en el botón Crear credenciales y selecciona ID de cliente de OAuth.
- Selecciona el tipo de aplicación Aplicación web.
- En el campo Orígenes autorizados de JavaScript, ingresa la URL desde la que entregarás la muestra de código. Por ejemplo, puedes usar
http://localhost:8000
ohttp://yourserver.example.com
. Puedes dejar el campo de redireccionamiento autorizados de URI en blanco. - Haz clic en el botón Crear para terminar de crear tus credenciales.
- Antes de cerrar el cuadro de diálogo, copia el ID de cliente, que deberás ingresar en la muestra de código.
Hacer una copia local de la muestra
Luego, guarda la muestra en un archivo local. En la muestra, busca la siguiente línea y reemplaza YOUR_CLIENT_ID por el ID de cliente que obtuviste cuando configuraste las credenciales de autorización.
gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});
Ejecuta el código
Ahora estás listo para probar la muestra:
- Abre el archivo local desde un navegador web y abre la consola de depuración en el navegador. Deberías ver una página que muestra dos botones.
- Haz clic en el botón autorizar y cargar para iniciar el flujo de autorización del usuario. Si autorizas a la aplicación a recuperar los datos de tu canal, deberías ver las siguientes líneas impresas en la consola en el navegador:
Sign-in successful GAPI client loaded for API
- Si ves un mensaje de error en lugar de las líneas anteriores, confirma que estás cargando la secuencia de comandos desde el URI de redireccionamiento autorizado que configuraste para tu proyecto y que colocaste tu ID de cliente en el código como se describió anteriormente.
- Haga clic en el botón execute para llamar a la API. Deberías ver un objeto
response
impreso en la consola del navegador. En ese objeto, la propiedadresult
se asigna a un objeto que contiene los datos de la API.
Código de muestra
<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>