Compartir a través de


mensaje: delta

Espacio de nombres: microsoft.graph

Obtenga un conjunto de mensajes que se hayan agregado, eliminado o actualizado en una carpeta determinada.

Una llamada de función delta para los mensajes de una carpeta es similar a una solicitud GET, salvo que al aplicar correctamente tokens de estado en una o varias de estas llamadas, puede consultar los cambios incrementales en los mensajes de esa carpeta. Esto le permite mantener y sincronizar un almacén local de mensajes de un usuario sin tener que capturar todo el conjunto de mensajes del 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) Mail.ReadBasic Mail.Read, Mail.ReadWrite
Delegado (cuenta personal de Microsoft) Mail.ReadBasic Mail.Read, Mail.ReadWrite
Aplicación Mail.ReadBasic.All Mail.Read, Mail.ReadWrite

Solicitud HTTP

Para obtener todos los cambios en los mensajes de la mailFolder especificada:

GET /me/mailFolders/{id}/messages/delta
GET /users/{id}/mailFolders/{id}/messages/delta

Para obtener específicamente solo mensajes creados, actualizados o eliminados en el mailFolder especificado:

GET /me/mailFolders/{id}/messages/delta?changeType=created
GET /users/{id}/mailfolders/{id}/messages/delta?changeType=created

GET /me/mailFolders/{id}/messages/delta?changeType=updated
GET /users/{id}/mailFolders/{id}/messages/delta?changeType=updated

GET /me/mailFolders/{id}/messages/delta?changeType=deleted
GET /users/{id}/mailFolders/{id}/messages/delta?changeType=deleted

Parámetros de consulta

El seguimiento de los cambios en los mensajes genera una ronda de una o varias llamadas de función delta . Si usa cualquier parámetro de consulta (distinto de $deltatoken y $skiptoken) que sea una opción de consulta del sistema OData o la opción de consulta personalizada changeType, 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
$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 colección de mensajes, que indica la finalización de esa ronda de seguimiento de cambios. Guarde y aplique toda la dirección URL @odata.deltaLink, incluido este token, en la primera solicitud de la siguiente ronda de seguimiento de cambios de la colección.
$skiptoken string Un token de estado que se devuelve en la URL de @odata.nextLink de la llamada de función delta. Indica que debe realizarse el seguimiento de más cambios en la misma colección de mensajes.
changeType string Una opción de consulta personalizada para filtrar la respuesta diferencial en función del tipo de cambio. Los valores admitidos son created, updated o deleted.

Parámetros de consulta de OData

  • Puede utilizar un parámetro de consulta $select como en cualquier solicitud GET para especificar solo las propiedades que necesita para un mejor rendimiento. Siempre se devuelve la propiedad id.
  • Compatibilidad con consultas de delta $select, $top, y $expand para los mensajes.
  • Hay compatibilidad limitada para $filter y $orderby:
    • Las únicas expresiones $filter admitidas son $filter=receivedDateTime+ge+{value} y $filter=receivedDateTime+gt+{value}.
    • La única expresión $orderby admitida es $orderby=receivedDateTime+desc. Si no incluye una expresión $orderby, no se garantiza el orden de devolución.
  • No hay compatibilidad con $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.

Respuesta

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

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 mensajes en el cuerpo de la respuesta a 2.

Para realizar un seguimiento de los cambios en los mensajes de una carpeta, realizaría una o varias llamadas de función delta para obtener el conjunto de cambios incrementales desde la última consulta delta. Para obtener un ejemplo que muestre una ronda de llamadas de consulta delta, consulte Obtención de cambios incrementales en los mensajes de una carpeta.

GET https://graph.microsoft.com/v1.0/me/mailFolders/AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OAAuAAAAAAAiQ8W967B7TKBjgx9rVEURAQAiIsqMbYjsT5e-T7KzowPTAAAAAAFNAAA=/messages/delta
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/mailFolders/{id}/messages/delta?$skiptoken={_skipToken_}",
  "value": [
    {
      "receivedDateTime": "datetime-value",
      "sentDateTime": "datetime-value",
      "hasAttachments": true,
      "internetMessageId": "internetMessageId-value",
      "subject": "subject-value",
      "body": {
        "contentType": "contentType-value",
        "content": "content-value"
      }
    }
  ]
}