Saltar al contenido

Acceso a la API de Google Calendar desde el servidor Node

Ya no tienes que buscar más por todo internet porque has llegado al espacio indicado, contamos con la respuesta que quieres y sin liarte.

Solución:

Yo estaba en la misma situación que tú. Google no tiene documentación para server-to-server autenticación para la API del cliente nodejs. Ridículo. Finalmente encontré la solución aquí. Básicamente necesitas una cuenta de servicio key (archivo JSON por lo general) y google.auth.JWTserver-to-server OAuth 2.0 cliente.

let google = require('googleapis');
let privatekey = require("./privatekey.json");
// configure a JWT auth client
let jwtClient = new google.auth.JWT(
       privatekey.client_email,
       null,
       privatekey.private_key,
       ['https://www.googleapis.com/auth/calendar']);
//authenticate request
jwtClient.authorize(function (err, tokens) 
 if (err) 
   console.log(err);
   return;
  else 
   console.log("Successfully connected!");
 
);

Ahora solo llame a la API de calendario así:

let calendar = google.calendar('v3');
calendar.events.list(
   auth: jwtClient,
   calendarId: 'primary'//whatever
, function (err, response) 

);

Creo que desea agregar y eliminar eventos en un calendario usando Node.js.

Acerca de quickstart.js para usar la API de calendario, para usar la API de calendario, al principio, los usuarios deben recuperar client_secret.json con ID de cliente, secreto de cliente, etc., y habilite la API de calendario en la consola API.

Como siguiente paso, el token de acceso y el token de actualización deben recuperarse de Google usando client_secret.json. La mayoría de quickstart.js en Quickstart se utiliza para recuperarlos. var TOKEN_PATH = TOKEN_DIR + 'calendar-nodejs-quickstart.json'; incluye el token de acceso y el token de actualización recuperados usando client_secret.json. El token de acceso que tiene el tiempo de vencimiento se puede recuperar del token de actualización que no tiene el tiempo de vencimiento. En quickstart.jsel token de acceso se recupera cada vez que se ejecuta el script mediante el token de actualización.

Funciones a excepción de listEvents(auth) en el quickstart.js se utilizan para la autorización. En listEvents(auth)la API de calendario se puede usar mediante el token de acceso recuperado por la autorización.

Guión de muestra

El siguiente script de muestra es para agregar y eliminar eventos. Esto supone que el Paso 1 y el Paso 2 en Quickstart ya han terminado y quickstart.js se usa

Para la muestra de inicio rápido de Node.js, modificó listEvents(). Cuando use este script de muestra, copie y pegue Muestra de inicio rápido de Node.js y cambio listEvents() de la siguiente manera, y agregue lo siguiente addEvents() y removeEvents().

function listEvents(auth) 
  var calendar = google.calendar('v3');

  addEvents(auth, calendar); // Add events
  removeEvents(auth, calendar); // Remove events

1. Agregar eventos

La información detallada es https://developers.google.com/google-apps/calendar/v3/reference/events/insert.

function addEvents(auth, calendar)
  calendar.events.insert(
    auth: auth,
    calendarId: 'primary',
    resource: 
      'summary': 'Sample Event',
      'description': 'Sample description',
      'start': 
        'dateTime': '2017-01-01T00:00:00',
        'timeZone': 'GMT',
      ,
      'end': 
        'dateTime': '2017-01-01T01:00:00',
        'timeZone': 'GMT',
      ,
    ,
  , function(err, res) 
    if (err) 
      console.log('Error: ' + err);
      return;
    
    console.log(res);
  );

2. Eliminar eventos

La información detallada es https://developers.google.com/google-apps/calendar/v3/reference/events/delete.

function removeEvents(auth, calendar)
  calendar.events.delete(
    auth: auth,
    calendarId: 'primary',
    eventId: "#####",
  , function(err) 
    if (err) 
      console.log('Error: ' + err);
      return;
    
    console.log("Removed");
  );

Te mostramos las comentarios y valoraciones de los usuarios

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *