google-api - tutorial - trucos de google calendar
¿Cómo construir un enlace html para un evento de google calendar? (8)
Usando la API v3 de google calendar, agregué un evento a un calendario de google. Ahora quiero crear un enlace html para que alguien pueda hacer clic y ver el evento del calendario.
Esto es lo que he intentado:
<a href="https://www.google.com/calendar/feeds/default/private/full/{{ event.googleID }}">View Google</a>
el href se ve como
https://www.google.com/calendar/feeds/default/private/full/bigstringhere1ovmuup7mjf0
El problema es que obtengo un error 401 "Se requiere autorización"
¿Cómo puedo crear un enlace para ver / editar el evento del calendario en función de una ID de calendario de Google?
¡Hay una manera! Para ver un evento de calendario público, use un enlace del formulario:
https://www.google.com/calendar/event?eid={event-id}&ctz={timezone}
donde {id-evento} es el id de evento único, y {zona horaria} es una de estas zonas horarias .
Aquí hay un ejemplo: enlace a un evento de calendario público específico .
Si tiene derechos de edición para el calendario del que proviene este evento, podrá editar el evento y ver la lista de invitados. De lo contrario, solo verá la información pública sobre el evento.
Ya que puede ser difícil determinar la identificación del evento, aquí hay un bookmarklet que produce un enlace a su evento de Google Calendar cuando está editando su página de Detalles:
javascript:(function(){ try { window.prompt(''Shareable link to this event:'',''https://www.google.com/calendar/event?eid=''+document.getElementsByClassName(''ep'')[0].getAttribute(''data-eid'')) } catch (e) {alert("Use this bookmarklet to get a shareable link to a Google Calendar event when editing its Details page.")}})()
Y una versión de este bookmarklet que funciona con la nueva interfaz de usuario de Google Calendar (a partir de 2017):
javascript:(function(){
window.prompt(''Shareable link to this event:'',
''https://www.google.com/calendar/event?eid=''+
window.location.href.split("/").pop().split("?")[0])
})()
(También posiblemente útil, cómo vincular a un día específico de un calendario público de Google:
https://www.google.com/calendar/embed?src={calendar-id}&mode=day&dates={yyyymmdd}%2F{yyyymmdd}
donde {calendar-id} es el id del calendario y {aaaammdd} es el día que desea vincular.
Los parámetros opcionales incluyen la zona horaria y si se muestran varios elementos, por ejemplo:
&ctz=Asia/Taipei&showNav=0&showPrint=0&showCalendars=0
Ejemplo: enlace a un solo día de un calendario público .)
Aquí está el HTML para construir el enlace:
https://www.google.com/calendar/render?action=TEMPLATE&text=Your+Event+Name&dates=20140127T224000Z/20140320T221500Z&details=For+details,+link+here:+http://www.example.com&location=Waldorf+Astoria,+301+Park+Ave+,+New+York,+NY+10022&sf=true&output=xml
Google ha creado una página para bricolaje.
La URL del evento no es la URL del calendario.
Este enlace trae explicaciones: Google Calender v3.
Y la forma de construir este url es:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
donde calendarId
y eventId
son parámetros.
Espero que esto sea útil.
Para crear una página donde los usuarios puedan ver el Calendario de eventos públicamente, un usuario que tenga permisos para cambiar la configuración de compartir el calendario debe hacer público el calendario:
En el calendario de Google, en la parte superior derecha, haga clic en la rueda Configuración.
En Configuración, haga clic en la pestaña "Calendarios".
Haga clic en el nombre del calendario con el que está trabajando.
A continuación, haga clic en la pestaña "Compartir este calendario". Asegúrese de que las casillas de verificación estén marcadas en la captura de pantalla de abajo (en un círculo en rojo).
Luego, haga clic en la pestaña "Detalles del calendario", ubicada en la parte superior izquierda.
Desplácese hasta la sección "Dirección del calendario", como se muestra en la captura de pantalla a continuación.
Haga clic en "HTML".
Aparecerá una ventana emergente modal, que incluye la URL pública que necesitará para acceder al Calendario públicamente.
Aquí hay un ejemplo de cómo podría verse la URL:
https://www.google.com/calendar/[email protected]&ctz=America/Los_Angeles&gsessionid=OK
Además, consulte la API de datos del calendario de Google para obtener información sobre cómo crear y trabajar con los gadgets del calendario.
Para obtener el evento de la API de Google Calendar v3, llame a:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
El evento contiene una propiedad htmlLink
, que es exactamente lo que necesita:
Un enlace absoluto a este evento en la interfaz de usuario web de Google Calendar. Solo lectura.
Consulte https://developers.google.com/google-apps/calendar/v3/reference/events .
El enlace se ve así:
https://www.google.com/calendar/event?eid=XzYwcTMwYzFnNjBvMzBlMWk2MG80YWMxZzYwcmo4Z3BsODhyajJjMWg4NHMzNGg5ZzYwczMwYzFnNjBvMzBjMWc2c28zMmRoaDhwMGpnaDIxNnQyNDZkaGc2NG8zMGMxZzYwbzMwYzFnNjBvMzBjMWc2MG8zMmMxZzYwbzMwYzFnNzByNDRoMWk2b3AzOGUxazZoMms2aDFrNmQwamNkaTI2OHBrMmhpMjg4czRjZ2hoNzBwMF8yMDA2MDUwNSBob3BtYW4ubmxfbjE5ZGF2YWgxb3Zkb3EzbGl2N2t1aWU5Z.
Se abrirá el evento en pantalla completa, solo que si tiene acceso al evento. La pantalla contendrá un botón de retroceso para volver al calendario.
Claramente, no puedes construir este enlace por ti mismo, así que necesitarás hacer una llamada a la API, pero probablemente ya lo estés haciendo de todos modos.
Para ver el calendario de Google evento por ID de evento.
Puedes usar el siguiente ejemplo:
https://www.google.com/calendar/event?eid={event-id}&ctz={timezone}
Ejemplo para Indian TimeZone:
https://calendar.google.com/calendar/event?eid=ZjVicWczYWpndmh0ZmdtYmd0cXFxZWc3czggdTJoZmoybGg0aDcwbmhzMzV2c25pamd1dG9AZw&ctz=Asia/Kolkata
Quería publicar esto porque es tangencial a la pregunta que se está haciendo y esta publicación aparece cuando estaba tratando de hacer lo siguiente.
Estaba intentando generar un evento de Google con el único propósito de ser agregado a los calendarios de otras personas, no guardado en ningún calendario en particular. He encontrado un ejemplo aquí y actualmente estoy tratando de averiguar los parámetros de URL que acepta.
https://www.google.com/calendar/render?action=TEMPLATE&text=PRP+Due&dates=20141106T120000Z/20141106T120000Z&details&location&trp=false