Herramientas de desarrollo
Jaha Jereshov
Desarrollador back-end
29 de diciembre de 2022
Una plataforma de código bajo que combina la simplicidad del código cero con la potencia del código completo 🚀.
Empieza gratis
29 de diciembre de 2022
-
10
min leer

Crear un nuevo evento en Google Calendar con Latenode

Jaha Jereshov
Desarrollador back-end
Índice

Nota: Después de añadir nuevos nodos en la cadena Latenode de un proyecto, para acceder a los datos de los nodos anteriores, tienes que ejecutar el proyecto y llamar a la cadena con todos los datos necesarios. Los datos sustituidos desde el nodo "JavaScript" al nodo "Solicitud HTTP" a menudo deben escaparse con comillas dobles. Los objetos complejos o matrices recibidos en respuesta a la solicitud de servidores remotos y que llegan como cadena deben ser procesados por JSON.parse para poder trabajar con ellos en los nodos "JavaScript" como con el tipo de datos correspondiente.

Primero, asegúrate de obtener el token según las instrucciones de nuestro artículo, sólo que en la lista de servidores selecciona "Google Calendar Api v..." y en el ámbito "www.googleapis.com/auth/calendar ";

A continuación, crea un nuevo calendario en Calendar, podemos llamarlo por ejemplo "LatenodeTest";

Preparemos una solicitud para nuestro cliente de descanso;

REQ01: Solicitud de cliente de descanso


curl --request POST --url 'https://webhook.latenode.com/00/dev/some_hash'
--header 'Accept: application/json'
--header 'Tipo de contenido: application/x-www-form-urlencoded'
--data 'token=[Sustituye los corchetes por el contenido de tu token]'
--data 'summary=Evento creado desde Latenode'
--data 'location=https://app.latenode.com'
--data 'description=Añadir un evento al calendario desde Latenode utilizando la API'
--data 'startDate=2022-12-21T09:00:00-07:00 Cambia a la fecha más cercana'
--data 'startTZ=Europa/Moscú'
--data 'endDate=2022-12-22T09:00:00-07:00 Cambia a la fecha más cercana'
--data 'endTZ=Europa/Moscú'

Sustituyamos nuestro testigo obtenido en el paso del principio;

Cambia la fecha de inicio "startDate" y la fecha final "endDate" a la más cercana, también puedes cambiar la zona horaria si no encaja es startTZ y endTZ;

Crea un nodo "Webhook": "+ Añadir nodo" => "Http" => "Webhook";

Copia la dirección del Webhook y pégala en la barra de direcciones del cliente de descanso;

A continuación, vamos a añadir otro nodo "JavaScrtipt": "+ Añadir Nodo" => "Código" => "JavaScrtipt";

Guarda los cambios;

Une el nodo;

Iniciemos y llamemos a la cadena para transferir datos entre los nodos;

Copiemos el contenido en él:


  const apiURL = "https://www.googleapis.com/calendar/v3";
  const bToken = "Bearer " + data["{{1.body.token}}"];
  const event = {
    'summary': data["{{1.body.summary}}"],
    'location': data["{{1.body.location}}"],
    'description': data["{{1.body.description}}"],
    'start': {
      'dateTime': data["{{1.body.startDate}}"],
      'timeZone': data["{{1.body.startTZ}}"]
    },
    'end': {
      'dateTime': data["{{1.body.endDate}}"],
      'timeZone': data["{{1.body.endTZ}}"]
    },
    'reminders': {
      'useDefault': false,
      'overrides': [
        {'method': 'email', 'minutes': 24 * 60},
        {'method': 'popup', 'minutes': 10}
      ]
    }
  };
  return {
      apiURL, bToken, event
  }

Let's check in all constructions like "data["{{1.body.name}}"]" that the number of Webhook corresponds to the one we are getting data from, if not replace it with the necessary one (let me remind you that 1 is the node number written just below the node name above the node type, then if it is a query then the object field responsible for the type of sent/received data is selected - body for forms or query for query parameters);

Ahorra;

Vamos a crear el nodo "Petición HTTP": "+ Añadir nodo" => "Http" => "Petición HTTP";

Guarda los cambios;

Une los nodos;

Iniciemos y llamemos a la cadena para transferir datos entre los nodos;

En el campo "Url" del principio sustituimos la variable"apiURL" de "JavaScrtipt" y tras ella especificamos /usuarios/me/calendarList ;

Asegúrate de que el método por defecto es "Obtener";

Añadamos el título "Autorización" y en su valor la variable"bToken" de "JavaScrtipt";

Haz clic en "Guardar";

Vamos a crear otro nodo "JavaScrtipt": "+ Añadir Nodo" => "Código" => "JavaScrtipt";

Guarda los cambios;

Une los nodos;

Iniciemos y llamemos a la cadena para transferir datos entre los nodos;

Copiemos el contenido en él, para encontrar el calendario deseado a partir de la lista obtenida de la consulta anterior:


  const tempCalendarsList = JSON.parse(data["{{3.body.items}}"]); // Make sure the information is from the correct node from the calendar list query
  const targetCalendar = tempCalendarsList.find((calendar) => calendar.summary === "LatenodeTest"); // Here instead of "LatenodeTest" you can write the name of the desired calendar
  return {
    targetCalendar
  }

Comprueba los datos que se especifican en los comentarios del código;

Guarda

Vamos a crear el nodo "Petición HTTP": "+ Añadir nodo" => "Http" => "Petición HTTP";

Guarda los cambios;

Une los nodos;

Iniciemos y llamemos a la cadena para transferir datos entre los nodos;

En el campo "Url" al principio sustituimos la variable"apiURL" del primer nodo "JavaScrtipt", después añadimos: /calendarios/, después sustituimos la variable"targetCalendar.id" de "JavaScrtipt" por el tratamiento de la lista de calendarios, y al final: /eventos;

Cambia el método al método "Publicar";

En el cuerpo de "raw": sustituyamos la variable que contiene el objeto por el nuevo evento del primero del primer nodo "JavaScrtipt";

Añadamos la cabecera "Autorización" y en su valor la variable"bToken" del primer nodo "JavaScrtipt";

Haz clic en "Guardar";

Une los nodos;

Iniciemos y llamemos a la cadena para transferir datos entre los nodos;

Después de eso, debería aparecer un nuevo evento en el calendario;

Al final de toda la cadena en Latenode tendrá este aspecto:

Nos vemos en futuros artículos;

Enlaces útiles:


Básico:

Latenode
Google OAuth 2.0 Playground

Información:

API del Calendario de Google
API del Calendario de Google CalendarList: lista
Evento de la API de Google Calendar: insertar

Blogs relacionados

Caso práctico

Respaldado por