Google soporta oficialmente Node.js para acceso a su API


 

Con apoyo oficial de Google ,ahora  ofrecen  la  biblioteca de cliente Node.js  para el uso de las API de Google. También es compatible con la autorización y la autenticación con OAuth 2.0. 

 

Node.js es un entorno de programación en la capa del servidor basado en el lenguaje de programación Javascript, con I/O de datos en una arquitectura orientada a eventos y basado en el motor Javascript V8. Fue creado   por Ryan Dahl en 2009 y su evolución está apadrinada por la empresa Joyent, con el enfoque de ser útil en la creación de programas de red altamente escalables, como por ejemplo, servidores web.

Al contrario que la mayoría del código JavaScript, no se ejecuta en un navegador, sino en el servidor. Node.js implementa algunas especificaciones de CommonJS.

Node.js incluye un entorno REPL para depuración interactiva.

Si usted ha utilizado esta biblioteca antes de 1.0 , consulte laa Guía de migración para aprender acerca de cómo migrar su código desde 0.xx a 1.0 . Es bastante fácil 🙂

 

Instalación

Esta biblioteca se distribuye en npm . Con el fin de agregarlo como una dependencia, ejecute el siguiente comando:

$ npm install googleapis

Uso

Ejemplo: crea un cliente URL Shortener y recupera el largo url de la url corta dado:

  google var = require ('googleapis');
 urlshortener var = google urlshortener ('v1').;

 params var = {Shorturl: 'http://goo.gl/xKbRu3'};

 / / Obtener el largo url de una URL acortada
 urlshortener. url. get (params, función (err, respuesta) {
   . consola log ('Long url es', la respuesta LongURL.);
 });

Crear un cliente de servicios

Para interactuar con las distintas API de Google que necesita para crear un cliente de servicios para esa API particular. Estos son objetos inmutables que se utiliza para hacer llamadas a la API.

Ejemplo: Creación de una urlshortener cliente con la versión v1 de la API.

  google var = require ('googleapis');
 urlshortener var = google urlshortener ('v1').;

API soportados están listados en la API de Google Explorador .

Autorizar y autenticar

Este cliente viene con un OAuth2 cliente que le permite recuperar un token de acceso y se actualiza la ficha y vuelva a intentar la solicitud a la perfección si ha caducado token. Los fundamentos de la aplicación de Google OAuth2 se explica en Google autorización y documentación de autenticación .

En los siguientes ejemplos, es posible que necesite un CLIENT_ID , CLIENT_SECRET y REDIRECT_URL . Usted puede encontrar estas piezas de información, vaya a la consola de desarrollo , haciendo clic en su proyecto -> y APIs auth -> credenciales.

Para obtener más información acerca de OAuth2 y cómo funciona, ver aquí .

Una aplicación completa de la muestra que se autoriza y se autentica con el cliente OAuth2 está disponible enexamples/oauth2.js .

Generación de un URL de autenticación

Para solicitar los permisos de un usuario recuperar un token de acceso, que les redirige a una página consentimiento. Para crear una URL de la página de consentimiento:

  google var = require ('googleapis');
 OAuth2 var = google auth OAuth2..;

 oauth2Client var = new OAuth2 (CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);

 / / Generar una url que pide permisos para Google+ y Google Calendar ámbitos
 ámbitos var = [
   'Https://www.googleapis.com/auth/plus.me',
   'Https://www.googleapis.com/auth/calendar'
 ];

 var url = oauth2Client. generateAuthUrl ({
   access_type: 'offline', / / "en línea" (por defecto) o 'fuera de línea' (consigue refresh_token)
   ámbito de aplicación: ámbitos / / Si sólo necesita un ámbito que puede pasar como una cadena
 });

Recuperar el código de autorización

Una vez que el usuario haya dado permisos en la página consentimiento, Google volverá a dirigir la página a la dirección URL de redireccionamiento que ha provisto de un parámetro de consulta de código.

 GET /oauthcallback?code={authorizationCode}

Recuperar token de acceso

Con el código de vuelto, usted puede pedir un token de acceso, como se muestra a continuación:

  oauth2Client. obtenerElemento (código, función (err, tokens) {
   / / Ahora fichas contiene un señal_acceso y un refresh_token opcional.  Excepto ellos.
   if (! err) {
     . oauth2Client SetCredentials (tokens);
   }
 });

Configuración global o autenticación de nivel de servicio

Puede establecer la auth como opción global oa nivel de servicio, de modo que no es necesario especificarla cada petición.

Ejemplo: Configuración de un mundial auth opción.

  google var = require ('googleapis');
 OAuth2 var = google auth OAuth2..;
 oauth2Client var = new OAuth2 (CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);
 . google opciones ({auth: oauth2Client}); / / conjunto de autenticación como un valor predeterminado global

Ejemplo: Ajuste de un nivel de servicio auth opción.

  google var = require ('googleapis');
 OAuth2 var = google auth OAuth2..;
 oauth2Client var = new OAuth2 (CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);

 unidad var = Google Drive ({version: 'v2', auth: oauth2Client}).;

Consulte la sección Opciones para más información.

Hacer peticiones autenticadas

Puede comenzar a utilizar OAuth2 para autorizar y autenticar sus peticiones a las API de Google con los tokens obtenidos. Si proporciona un refresh_token , el access_token se actualiza automáticamente y la petición se repite en el caso de que el access_token ha expirado.

A raíz de ejemplo recupera el perfil de Google+ del usuario autenticado.

  google var = require ('googleapis');
 var = plus google plus ('v1').;
 oauth2Client var = new OAuth2 (CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);

 / / Recuperar fichas a través del intercambio simbólico se ha explicado anteriormente, o introducirlos:
 . oauth2Client SetCredentials ({
   señal_acceso: 'token de acceso AQUI',
   refresh_token: 'Actualizar TOKEN AQUI'
 });

 .. más personas get ({Usuario: "yo", auth: oauth2Client}, la función (err, respuesta) {
   / / Respuesta mango err y
 });

El uso de claves de la API

Es posible que deba enviar una clave de API con la solicitud de que se va a hacer. A continuación se utiliza una clave de API para hacer una solicitud al servicio de la API de Google+ para recuperar el perfil de una persona dado un ID de usuario:

  google var = require ('googleapis');
 var = plus google plus ('v1').;

 api_key var = 'ABC123'; / / especificar su clave de API aquí

 .. más gente ({auth: api_key, userId: '+ google'}, la función (err, usuario) {
   . consola log ('Resultado:' + (err err mensaje: user idioma)?..);
 });

Como alternativa, se puede especificar la key de parámetros y se acostumbrará:

  .. más gente ({key: api_key, userId: '+ google'}, la función (err, usuario) {
   . consola log ('Resultado:' + (err err mensaje: user idioma)?..);
 });

Para obtener más información acerca de las claves de la API, consulte la documentación .

Medios Cargas

Este cliente es compatible con archivos de medios de comunicación de varios ejemplares. Los parámetros de los recursos se especifican en el resource objeto de parámetro, y el cuerpo de los medios de comunicación en sí se especifica en la media de parámetros.

Ejemplo: Cargar un archivo de texto sin formato a Google Drive con el título «Test» y el contenido «Hello World».

  unidad var = Google Drive ({version: 'v2', auth: oauth2Client}).;

 conducir. archivos. insertar ({
   recurso: {
     título: 'Test',
     mimeType: 'text / plain'
   },
   los medios de comunicación: 'Hola Mundo'
 }, Callback);

También puede cargar los medios de comunicación mediante la especificación de media como unasecuencia legible . Esto puede permitir que usted cargue archivos muy grandes que no caben en la memoria.

Nota: Su secuencia legible puede ser inestable . Utilice a su propio riesgo.

Ejemplo: Cargar una imagen de Google Drive desde una secuencia legible.

  fs var = require ('fs');
 unidad var = Google Drive ({version: 'v2', auth: oauth2Client}).;

 conducir. archivos. insertar ({
   recurso: {
     título: 'testimage.png',
     mimeType: 'image / png'
   },
   los medios de comunicación:. fs createReadStream ('awesome.png') / / leer los arroyos son impresionantes!
 }, Callback);

Para más ejemplos de solicitudes de creación y modificación con archivos adjuntos de los medios, echa un vistazo a los examples/mediaupload.js muestra.

La exposición objeto de la petición

Cada solicitud a la API devuelve una request objeto, lo que permite realizar un seguimiento de la información general acerca de la solicitud el progreso de la solicitud o.

  req var = unidad Insertar archivos (/ * ... * /)..;
 . consola log (req uri href..); / / imprimir el URL de la solicitud.

Opciones

Para un control más afinado sobre cómo se hacen las llamadas a la API, le ofrecemos la posibilidad de especificar opciones adicionales que se pueden aplicar directamente a la mikeal/request objeto utilizado de esta biblioteca para hacer la red llama a la API.

Puede especificar opciones adicionales, ya sea en el mundial google objeto o en una base de cliente de servicio.

Opciones disponibles

Las opciones que especifique se adjuntan a la request objeto para cualquier request soporte, esta biblioteca soportes.

Una lista completa de las opciones soportadas se puede encontrar aquí .

Las opciones globales

Ejemplo: Especificar un proxy predeterminado y auth que se utilizará para cada solicitud

  google var = require ('googleapis');
 google. Opciones ({Proxy: 'http://proxy.example.com', auth: auth});

 / / Todas las solicitudes realizadas con este objeto utilizará estos ajustes a menos que exista

Opciones de servicio y cliente

También puede especificar opciones al crear un cliente de servicios. Por ejemplo, para especificar un valor predeterminado auth opción (clave de API o cliente OAuth2), sólo tiene que pasar en este modo:

  auth var = 'CLAVE API'; / / o puede utilizar oauth2Client
 urlshortener var = google urlshortener ({version: 'v1', auth: auth}).;

 / / Todas las solicitudes realizadas con este objeto utilizará la autenticación especificada

De esta manera, cada llamada API realizado con este cliente servicio utilizará 'API KEY' para autenticar.

Nota: Creado clientes son inmutables lo que debe crear uno nuevo si desea especificar diferentes opciones.

Opciones de nivel de Solicitud

Puede especificar una auth objeto para ser usado por solicitud. Cada solicitud también hereda las opciones especificadas en el nivel de servicio y el nivel global.

 

 

 

Fuente  aqui