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
Stunning story there. What happened after? Good luck!
Me gustaMe gusta
Your mode of describing the whole thing in this piece of writing is genuinely
pleasant, every one be capable of effortlessly be aware of it, Thanks a lot.
Feel free to surf to my homepage: healthy lifestyle
Me gustaMe gusta
Wonderful beat ! I would like to apprentice while you amend your site, how could i subscribe
for a blog site? The account aided me a acceptable deal.
I had been tiny bit acquainted of this your broadcast provided
bright clear concept
Me gustaMe gusta
Hello i am kavin, its my first occasion to commenting anyplace, when i read
this post i thought i could also create comment due to this good paragraph.
Me gustaMe gusta
Hi there, just wanted to say, I loved this blog post.
It was practical. Keep on posting!
Me gustaMe gusta
You could certainly see your enthusiasm within the article
you write. The world hopes for more passionate writers such as you who are not
afraid to say how they believe. At all times go after your heart.
Me gustaMe gusta
Hi, all the time i used to check web site posts here early in the daylight, since i love to find out more and more.
Me gustaMe gusta
Keep up the great work, I read a few content on this site and I believe that your site is very interesting and contains sets of fantastic information.
Me gustaMe gusta
I think this is a real great blog. Really thank you! Want more.
Me gustaMe gusta
Hi there, I read your blogs regularly. Your humoristic style is awesome, keep doing what you’re
doing!
Me gustaMe gusta
Hello there, I do believe your blog could be having browser compatibility problems.
Whenever I look at your website in Safari, it looks fine however when opening in I.E., it
has some overlapping issues. I just wanted to provide you with a quick heads up!
Aside from that, fantastic blog!
Me gustaMe gusta
It’s going to be ending of mine day, except before ending I am reading this
wonderful piece of writing to improve my experience.
Me gustaMe gusta
Quality articles or reviews is the crucial to invite the visitors to go
to see the website, that’s what this web site is providing.
Me gustaMe gusta
Attractive component of content. I just stumbled upon your weblog and
in accession capital to assert that I get actually enjoyed account your
blog posts. Any way I will be subscribing on your augment or even I achievement you
get admission to consistently rapidly.
Me gustaMe gusta
Hi, i read your blog occasionally and i own a similar one and i
was just curious if you get a lot of spam feedback?
If so how do you reduce it, any plugin or anything you can suggest?
I get so much lately it’s driving me crazy so any help is very much appreciated.
Me gustaMe gusta
I am really thankful to the holder of this website who has shared this fantastic paragraph at at this
time.
Me gustaMe gusta
Right here is the perfect blog for everyone who wants
to find out about this topic. You realize so much its almost tough to argue with
you (not that I actually will need to…HaHa). You definitely put a brand new spin on a subject
that has been discussed for many years. Great stuff, just
wonderful!
Me gustaMe gusta
Hello there! This post could not be written any better! Reading this post reminds me of my old room mate! He always kept chatting about this. I will forward this page to him. Pretty sure he will have a good read. Many thanks for sharing!
Me gustaMe gusta
I have recently started a site, the information you provide on this web site has helped me greatly. Thank you for all of your time & work.
Me gustaMe gusta
Thank you for sharing your info. I truly appreciate
your efforts and I will be waiting for your next
post thanks once again.
https://tapas.io/viranamizari
Me gustaMe gusta
I was recommended this blog by my cousin. I’m not sure whether this post is written by
him as no one else know such detailed about my difficulty. You are wonderful!
Thanks!
https://meditation-news.ir/سرویس-و-تعمیر-پکیج-اهوازتعمیرات-پکیج-ب/
Me gustaMe gusta