event: delta

Espacio de nombres: microsoft.graph

Obtenga un conjunto de los recursos del evento que se hayan agregado, eliminado o actualizado en un calendarView (un intervalo de eventos definidos por fechas de inicio y finalización) del calendario principal del usuario.

Normalmente, la sincronización de eventos en un calendarView en un almacén local implica una ronda de varias llamadas de función delta. La llamada inicial es una sincronización completa y cada llamada delta posterior en la misma ronda obtendrá los cambios incrementales (adiciones, eliminaciones o actualizaciones). Esto permite mantener y sincronizar un almacén local de eventos en el calendarView especificado, sin tener que capturar todos los eventos de ese calendario desde el servidor cada vez.

Esta API está disponible en las siguientes implementaciones nacionales de nube.

Servicio global Gobierno de EE. UU. L4 Us Government L5 (DOD) China operada por 21Vianet

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) Calendars.Read Calendars.ReadBasic, Calendars.ReadWrite
Delegado (cuenta personal de Microsoft) Calendars.Read Calendars.ReadBasic, Calendars.ReadWrite
Aplicación Calendars.Read Calendars.ReadBasic, Calendars.ReadWrite

Solicitud HTTP

GET /me/calendarView/delta?startDateTime={start_datetime}&endDateTime={end_datetime}
GET /users/{id}/calendarView/delta?startDateTime={start_datetime}&endDateTime={end_datetime}

Parámetros de consulta

El seguimiento de los cambios en los eventos genera una ronda de una o varias llamadas de función delta . Si usa cualquier parámetro de consulta (distinto de $deltatoken y $skiptoken), debe especificarlo en la solicitud delta inicial. Microsoft Graph codifica automáticamente cualquier parámetro especificado en la parte del token de la URL @odata.nextLink o @odata.deltaLink proporcionada en la respuesta. Solo debe especificar una vez por adelantado los parámetros de consulta deseados. En solicitudes posteriores, simplemente copie y aplique la @odata.nextLink dirección URL o @odata.deltaLink de la respuesta anterior, ya que esa dirección URL ya incluye los parámetros codificados y deseados.

Parámetro de consulta Tipo Descripción
startDateTime String La fecha y hora de inicio del intervalo de tiempo, representada en formato ISO 8601. Por ejemplo, "2015-11-08T19:00:00.0000000".
endDateTime String La fecha y hora de finalización del intervalo de tiempo, representada en formato ISO 8601. Por ejemplo, "2015-11-08T20:00:00.0000000".
$deltatoken string Un token de estado devuelto en la @odata.deltaLink dirección URL de la llamada de función delta anterior para la misma vista de calendario, que indica la finalización de esa ronda de seguimiento de cambios. Guarde y aplique toda @odata.deltaLink la dirección URL, incluido este token, en la primera solicitud de la siguiente ronda de seguimiento de cambios para esa vista de calendario.
$skiptoken string Token de estado que se devuelve en la dirección URL de @odata.nextLink de la llamada de función delta. Indica que debe realizarse el seguimiento de más cambios en la misma vista del calendario.

Parámetros de consulta de OData

  • Esperar que una llamada de función delta en un calendarView devuelva las mismas propiedades que normalmente obtendría de una solicitud GET /calendarView. No puede usar $select para obtener solo un subconjunto de esas propiedades.

  • Hay otros parámetros de consulta de OData que la función delta para calendarView no admite: $expand, $filter, $orderby y $search.

Encabezados de solicitud

Nombre Tipo Descripción
Authorization string {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización.
Content-Type string application/json. Necesario.
Prefer string odata.maxpagesize={x}. Opcional.
Prefer string {Zona horaria}. Opcional, se supone hora UTC si no se encuentra.

Respuesta

Si se ejecuta correctamente, este método devuelve un código de respuesta 200 OK y el objeto de colección event en el cuerpo de la respuesta.

Dentro de una ronda de llamadas de función delta enlazadas por el intervalo de fechas de un calendarView, es posible que encuentre una llamada delta que devuelva dos tipos de eventos en @removed con el motivo deleted:

  • Eventos que están dentro del intervalo de fechas y que se han eliminado desde la llamada a delta anterior.
  • Eventos que están fuera del intervalo de fechas y que fueron agregados, eliminados o actualizados desde la llamada delta anterior.

Filtre los eventos en @removed para el intervalo de fechas que requiera el escenario.

Ejemplo

Solicitud

En el ejemplo siguiente se muestra cómo realizar una llamada de función delta única y limitar el número máximo de eventos en el cuerpo de la respuesta a 2.

Para realizar un seguimiento de la vista del calendario, debería realizar al menos una llamada de función delta, con unos tokens de estado adecuados, para obtener el conjunto de cambios incrementales desde la última consulta delta.

GET https://graph.microsoft.com/v1.0/me/calendarView/delta?startdatetime={start_datetime}&enddatetime={end_datetime}
Prefer: odata.maxpagesize=2

Respuesta

Si la solicitud se realiza correctamente, la respuesta incluiría un token de estado, que es un skipToken (en un encabezado de respuesta @odata.nextLink ) o un deltaToken (en un encabezado de respuesta @odata.deltaLink ). Respectivamente, indican si debe continuar con la ronda o si ha completado la obtención de todos los cambios para esa ronda.

La respuesta siguiente muestra un skipToken en un encabezado de respuesta de @odata.nextLink.

Nota: el objeto de respuesta que se muestra aquí puede haberse acortado para mejorar la legibilidad.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.nextLink":"https://graph.microsoft.com/v1.0/me/calendarView/delta?$skiptoken={_skipToken_}",
  "value": [
    {
      "originalStartTimeZone": "originalStartTimeZone-value",
      "originalEndTimeZone": "originalEndTimeZone-value",
      "responseStatus": {
        "response": "response-value",
        "time": "datetime-value"
      },
      "transactionId": null,
      "iCalUId": "iCalUId-value",
      "reminderMinutesBeforeStart": 99,
      "isDraft": false,
      "isReminderOn": true
    }
  ]
}