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
}
]
}