Estoy tratando de mostrar eventos de un calendario de Google "público". Mi requisito es obtener el número de asistentes (no necesariamente los nombres de los asistentes). Sin embargo, cuando obtengo los eventos usando la API de calendario (usando una clave API y CalendarID); al evento le falta toda la sección de asistentes que se menciona aquí .
Mi pregunta: ¿Necesito estar autenticado? ¿Significa esto que esto no puede ser público, y las páginas web que muestran esta información necesitarán que el "espectador" se autentique primero en Google?
Aquí hay un fragmento de mi código (editado)...
$.ajax({ type: 'GET', url: encodeURI('https://www.googleapis.com/calendar/v3/calendars/' + calendarId+ '/events?key=' + myKey), dataType: 'json', success: function (response) { console.log(response); //here is where I need to get the number of participants }, error: function (error) { console.log(error); //tell that an error has occurred }Aquí está la salida...
{tipo: 'calendar#events', etag: '"p324e9j5nqabva0g"', resumen: 'Horario de EDWC', descripción: '', actualizado: '2022-01-04T08:09:10.933Z', …} accessRole: 'lector ' defaultReminders: (0) [] descripción: '' etag: '""' items: (2) [{…}, {…}] 0: {tipo: 'calendar#event', etag: '""', id: '', estado: 'confirmado', htmlLink:...} 1: {tipo: 'calendario#evento', etag: '""', id: '', estado: 'confirmado', htmlLink:...} conferenceData: {} creado: '' creador: {} descripción: '' fin: {dateTime: '2022-01-08T16:00:00+11:00', timeZone: 'Australia/Sydney'} etag: '' eventType: ' default' hangoutLink: '' htmlLink: '' iCalUID: '' id: '' tipo: 'calendario#evento' ubicación: 'Australia' organizador: {email: '', displayName: '', self: true} secuencia: 0 inicio: {dateTime: '2022-01-08T13:00:00+11:00', timeZone: 'Australia/Sydney'} estado: 'confirmado' resumen: '' actualizado: '2022-01-04T08:09:10.933 Z' [[Prototipo]]: Objeto [[Prototipo]]: Longitud del objeto: 2 [[Prototipo]]: Array(0) tipo: 'calendario#eventos' nextSyncToken: 'CIjkzLfSl_UCEAAYASCvg6 XIAQ==' resumen: '' timeZone: 'Australia/Melbourne' actualizado: '2022-01-04T08:09:10.933Z' [[Prototipo]]: Objeto
for (var event of response['items']){}Puede lograr esto utilizando el cliente Google Api Node.js de esta manera:
| Asistentes al evento de Google Calendar | Ejecutar en Fusebit |
|---|
const calendarClient = googleClient.calendar('v3'); // Update the below fields with your desired values const calendarId = 'YOUR_CALENDAR_ID'; const eventId = 'YOUR EVENT_ID'; const response = await calendarClient.events.get({ calendarId, eventId, }); const attendees = response.data.attendees;