Charger les e-mails d’un utilisateur par lots

Effectué

Vous avez créé une application JavaScript, vous l’avez connectée à Microsoft 365 et affiché les 10 derniers e-mails de l’utilisateur à l’aide de Microsoft Graph. À présent, nous allons étendre l’application pour permettre aux utilisateurs de charger leurs e-mails en lots de 10 éléments.

Récupérer des données pagées à l’aide de Microsoft Graph

Lorsque vous appelez une API Microsoft Graph qui renvoie une collection de données, telle que l’API de messages que vous avez utilisée précédemment, vous recevez un sous-ensemble des données stockées dans Microsoft 365. Pour vérifier si votre application doit récupérer davantage de données, vérifiez si la réponse contient la propriété @odata.nextLink.

var emails = graphClient
  .api('/me/messages')
  .select('subject,receivedDateTime')
  .orderby('receivedDateTime desc')
  .top(10)
  .get();

if (emails['@odata.nextLink']) {
  // more data available
}

La propriété @odata.nextLink contient une URL complète que vous pouvez appeler pour récupérer la deuxième page des résultats. Cette URL conserve toute la configuration de la demande initiale, telle que les propriétés à récupérer, le tri des données, et le nombre d’éléments à obtenir.

Pour charger le lot de données suivant, transmettez l’URL retournée dans le @odata.nextLink au graphClient:

var emails = graphClient
  .api('/me/messages')
  .select('subject,receivedDateTime')
  .orderby('receivedDateTime desc')
  .top(10)
  .get();

if (emails['@odata.nextLink']) {
  var moreEmails = graphClient
    .api(emails['@odata.nextLink'])
    .get();
}

Après la récupération de la deuxième page des résultats, vous pouvez voir si davantage de données sont disponibles en vérifiant si les résultats ont le jeu de propriétés @odata.nextLink.

Attention

Microsoft Graph suit la norme OData 4. La norme inclut la possibilité d’utiliser la combinaison de paramètres $top et $skip (les méthodes top et skip dans le Kit de développement logiciel (SDK) Microsoft Graph) pour récupérer une page de données spécifique. Cela n’est pas possible lorsque vous travaillez avec des e-mails, car un dossier de courrier peut contenir des données autres que des e-mails qui peuvent affecter la pagination. C’est pourquoi, lorsque vous utilisez des e-mails, vous devez toujours utiliser la valeur @odata.nextLink pour charger plus de données.

Étapes suivantes

Étendons l’application pour permettre aux utilisateurs de charger plus d’e-mails en lots.