office how office365 exchangewebservices ews-managed-api

office365 - how - outlook rest api v2



AsignaciĆ³n de ID de calendario REST de Office365 a ID de EWS CalendarItem (1)

Con las notificaciones push de Exchange, he estado creando un servicio que se sincroniza con los datos del calendario de los usuarios de Office365. He estado usando una combinación de la API REST del calendario de Office365 (para obtener y administrar calendarios) y la API de EWS (para suscribirse a los cambios de calendario).

Noté que recientemente, MS ha introducido una API de vista previa para sus puntos finales de suscripción. Sin embargo, esta API todavía está en modo de vista previa y me gustaría evitar usarla por el momento.

Una vez que tengo todo configurado, el problema es que no puedo establecer una correlación entre el recurso de evento de calendario (REST) y el recurso de IWS CalendarItem que se devuelve en una notificación de inserción. El ItemId para el CalendarItem y el Id para el evento REST son diferentes.

Al intentar actualizar los eventos que he guardado de la API REST, esto resulta problemático ya que no puedo encontrar un buen método para asociarlos.

¡Cualquier ayuda es muy apreciada!

Editar Después de seguir investigando, he encontrado que los calendarios que se devuelven desde la API REST ( GET /calendars ) parecen ser elementos de Message dentro de la jerarquía EWS. Por lo tanto, en lugar de que este punto final devuelva ID de carpeta reales, devuelve ID de artículo que pertenecen a alguna carpeta llamada "Vistas comunes".

No estoy seguro de por qué las cosas están diseñadas de esta manera, pero la diferencia en las ID codificadas en base64 parece ser muy mínima. Sigo sin poder encontrar una buena manera de asociar los dos.


Así que resulta que mis ID no coinciden debido a que me suscribí a las notificaciones push de EWS a través de la versión Exchange2007 . Exchange2007_SP1 y más allá tienen EwsIds compatibles entre sí, por lo que esto incluye Office365.

Reemplazar - caracteres con / y _ con + me permiten realizar llamadas a los recursos de la API de Office365.

Finalmente, al realizar una llamada para obtener calendarios , la API en realidad está devolviendo tipos de elementos de Message que viven en la carpeta Common Views . Por lo tanto, cuando intente utilizar estos ID para suscripciones, la API de EWS se quejará de que le he enviado los ID de artículo y no el ID de carpeta.

Afortunadamente , encontré que hacer una solicitud a la API REST a través de GET /calendars/ews_folder_id realmente funciona una vez que se traduce correctamente la ID a un tipo seguro de URI (consulte la conversión anterior).