Partager via


message: delta

Espace de noms: microsoft.graph

Obtenez un ensemble de messages qui ont été ajoutés, supprimés ou mis à jour dans un dossier spécifié.

Un appel de fonction delta pour les messages d’un dossier est similaire à une requête GET, sauf qu’en appliquant de manière appropriée des jetons d’état dans un ou plusieurs de ces appels, vous pouvez interroger les modifications incrémentielles dans les messages de ce dossier. Cela vous permet de gérer et de synchroniser un magasin local des messages d’un utilisateur sans avoir à extraire l’ensemble des messages du serveur à chaque fois.

Cette API est disponible dans les déploiements de cloud national suivants.

Service global Gouvernement des États-Unis L4 Us Government L5 (DOD) Chine gérée par 21Vianet

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.

Type d’autorisation Autorisations avec privilèges minimum Autorisations privilégiées plus élevées
Déléguée (compte professionnel ou scolaire) Mail.ReadBasic Mail.Read, Mail.ReadWrite
Déléguée (compte Microsoft personnel) Mail.ReadBasic Mail.Read, Mail.ReadWrite
Application Mail.ReadBasic.All Mail.Read, Mail.ReadWrite

Requête HTTP

Pour obtenir toutes les modifications apportées aux messages dans le mailFolder spécifié :

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

Pour obtenir spécifiquement uniquement les messages créés, mis à jour ou supprimés dans le mailFolder spécifié :

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

Paramètres de requête

Le suivi des modifications dans les messages entraîne une série d’appels de fonction delta . Si vous utilisez un paramètre de requête (autre que $deltatoken et $skiptoken) qui est une option de requête système OData ou l’option de requête personnalisée changeType, vous devez le spécifier dans la demande delta initiale. Microsoft Graph code automatiquement les paramètres spécifiés dans la partie jeton du @odata.nextLink ou de l’URL @odata.deltaLink fournie dans la réponse. Il vous suffit de spécifier les paramètres de requête de votre choix la première fois. Dans les requêtes suivantes, copiez et appliquez simplement l’URL @odata.nextLink ou @odata.deltaLink de la réponse précédente, car cette URL inclut déjà les paramètres encodés souhaités.

Paramètre de requête Type Description
$deltatoken string Jeton d’état retourné dans l’URL @odata.deltaLink de l’appel de fonction delta précédent pour la même collection de messages, indiquant la fin de cette série de suivi des modifications. Enregistrez et appliquez l’ensemble de l’URL @odata.deltaLink, y compris ce jeton dans la première requête de la série suivante de suivi des modifications pour cette collection.
$skiptoken string Jeton d’état renvoyé dans l’URL @odata.nextLink de l’appel de fonction delta précédent, indiquant que des modifications supplémentaires doivent être suivies dans la même collection de messages.
changeType string Option de requête personnalisée pour filtrer la réponse delta en fonction du type de modification. Les valeurs prises en charge sont created, updated ou deleted.

Paramètres de requête OData

  • Vous pouvez utiliser un paramètre de requête $select comme dans toute requête GET pour spécifier uniquement les propriétés dont vous avez besoin pour de meilleures performances. La propriété id est toujours renvoyée.
  • La requête delta prend en charge $select, $top et $expand pour les messages.
  • Pour $filter et $orderby, la prise en charge est limitée :
    • Les seules expressions $filter prises en charge sont $filter=receivedDateTime+ge+{value} ou $filter=receivedDateTime+gt+{value}.
    • La seule expression $orderby prise en charge est $orderby=receivedDateTime+desc. Si vous n’incluez pas d’expression $orderby, l’ordre de renvoi n’est pas garanti.
  • $search n’est pas pris en charge.

En-têtes de demande

Nom Type Description
Autorisation string Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.
Content-Type string application/json. Obligatoire.
Préférence chaîne odata.maxpagesize={x}. Facultatif.

Réponse

Si elle réussit, cette méthode renvoie un code de réponse 200 OK et un objet de la collection message dans le corps de la réponse.

Exemple

Demande

L’exemple suivant montre comment effectuer un seul appel de fonction delta et limiter le nombre maximal de messages dans le corps de réponse à 2.

Pour suivre les modifications apportées aux messages d’un dossier, vous devez effectuer un ou plusieurs appels de fonction delta pour obtenir l’ensemble des modifications incrémentielles depuis la dernière requête delta. Pour obtenir un exemple montrant une série d’appels de requête delta, consultez Obtenir des modifications incrémentielles des messages dans un dossier.

GET https://graph.microsoft.com/v1.0/me/mailFolders/AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OAAuAAAAAAAiQ8W967B7TKBjgx9rVEURAQAiIsqMbYjsT5e-T7KzowPTAAAAAAFNAAA=/messages/delta
Prefer: odata.maxpagesize=2
Réponse

Si la demande réussit, la réponse inclut un jeton d’état, qui est soit un skipToken (dans un en-tête de réponse @odata.nextLink ) soit un deltaToken (dans un en-tête de réponse @odata.deltaLink ). Respectivement, ils indiquent si vous devez poursuivre la ronde ou si vous avez terminé d’obtenir toutes les modifications pour cette ronde.

La réponse suivante illustre un skipToken dans un en-tête de réponse @odata.nextLink.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

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