Charger les e-mails d’un utilisateur par lots

Effectué

Vous avez créé une application ASP.NET Core, l'avez connectée à Microsoft 365 et avez 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, 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 une valeur de demande de page suivante. Cette valeur est accessible à l’aide de la propriété de l’objet de NextPageRequest réponse, comme illustré dans la GetNextLink() méthode :

private string GetNextLink(IUserMessagesCollectionPage pagedMessages) {
  if (pagedMessages.NextPageRequest != null)
  {
    // Get the URL for the next batch of records
    return pagedMessages.NextPageRequest.GetHttpRequestMessage().RequestUri?.OriginalString;
  }
  return null;
}

L'appel à pagedMessages.NextPageRequest.GetHttpRequestMessage() renvoie une URL complète que vous pouvez appeler pour récupérer la page suivante de résultats. Toutes les données de configuration de la demande initiale sont préservées, y compris les propriétés à récupérer, la façon de trier les données et le nombre d'éléments à obtenir.

Pour charger le lot de données suivant, passez l’URL renvoyée par la méthode avec GetNextLink()GraphServiceClient l’instance à UserMessagesCollectionRequest l’objet :

// Use the next page request URI value to get the page of messages
var messagesCollectionRequest = new UserMessagesCollectionRequest(nextPageLink, _graphServiceClient, null);
pagedMessages = await messagesCollectionRequest.GetAsync();

Après avoir récupéré la deuxième page de résultats, vous pouvez voir si d'autres données sont disponibles en appelant la méthode GetNextLink().

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 travaillez avec des e-mails, vous devez toujours utiliser la technique présentée précédemment pour charger davantage de données.

Prochaines étapes

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