2011-01-05 108 views
7

Estoy creando un sitio web de php que utiliza la API de Google Calendar. Funciona bien con Crear, Actualizar y Eliminar: cualquier evento del sitio web de PHP entra en mis eventos de Google Calendar después de iniciar sesión.Sincronización de Google Calendar con php de 2 maneras

Los eventos creados en mi sitio se crean en Google Calendar.

Lo que quiero ahora es eso: cuando creo un evento desde mi página de prueba entra en Google Calendar luego de iniciar sesión, luego, si actualizo o elimino ese evento de Google Calendar, debería actualizar o eliminar automáticamente el evento del sitio web php .

Básicamente: la sincronización en 1 sentido funciona bien, pero ahora quiero la sincronización bidireccional.

Si alguien tiene alguna idea, entonces amablemente comparta conmigo, será muy apreciada.

Respuesta

5

No hay ganchos de aplicación en Google Calendar (gCal) que le permitan desencadenar una acción cuando se elimina un evento. En su lugar, debe sondear gCal a intervalos (esto podría ser un trabajo cron cada pocos minutos/horas) y actualizar su calendario en consecuencia, o cada vez que realice una acción desde su calendario tendrá un 1 en X posiblemente de una resincronización completa.

Esto implica que está utilizando gCal como la fuente definitiva, y reflejando esos cambios a su aplicación local.

+1

Estoy de acuerdo con Andy aquí, que no hay manera en la API para hacer esto – JoshBerke

1

¿No sería una opción para su sistema generar una salida de iCal en una URL especial, específica para el usuario, y luego hacer que el usuario se suscriba a ese calendario en Google Calendarios (o su calendario de lectura iCal elegido)?

De esta forma, su sistema siempre mantendría el calendario de autorizaciones, y Google Calendar reflejaría cualquier cambio que realice automáticamente.

Alternativamente, si desea que los cambios en el Calendario de Google se reflejen en su aplicación, entonces puede suscribirse a iCals para el Calendario del Usuario, y luego sondearlos en un intervalo regular para reflejar cualquier cambio que el Usuario ha hecho en ese extremo.

Me inclinaría por la primera opción (su iCal suscrito a través de Google Calendar), ya que es una solución más simple y fácil.

1

así, después de seguir estas respuestas y la construcción de un proceso de sincronización de 2 vías agujero, me di cuenta de que hay una notificaciones push para el calendario desde 2013. todavía se necesita un proceso de sincronización completa debido a que la notificación de inserción sólo se notifica un cambio, pero no hay datos sobre el cambio. espero que le ahorrará algo de tiempo.

Push Notifications

+0

Si va a mover la cabeza con incredulidad [como yo] que el empuje de la API * notifica que un calendario cambiado * pero no * qué cambió *, [esta publicación] (https://plus.google.com/+MatthewZimmerman/posts/ag6CEJoXxbM) -desafortunadamente- confirma las malas noticias. – elbowlobstercowstand

Cuestiones relacionadas