Пакетная загрузка сообщений электронной почты пользователя

Завершено

Вы создали приложение ASP.NET Core, подключили его к Microsoft 365 и отобразили последние 10 сообщений электронной почты пользователя с помощью Microsoft Graph. Давайте теперь расширим приложение, чтобы пользователи могли загружать свои сообщения электронной почты пакетами из 10 элементов.

Извлечение страничных данных с помощью Microsoft Graph

При вызове API Microsoft Graph, который возвращает коллекцию данных, вы получаете подмножество данных, хранящихся в Microsoft 365. Чтобы узнать, есть ли дополнительные данные, которые может получить ваше приложение, проверьте, содержит ли отклик значение запроса следующей страницы. Это значение можно получить с помощью свойства NextPageRequest объекта отклика, как показано в методе GetNextLink():

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

Вызов к pagedMessages.NextPageRequest.GetHttpRequestMessage() содержит полный URL-адрес, который можно вызвать для получения следующей страницы результатов. Все данные конфигурации из исходного запроса сохраняются, в том числе свойства, которые нужно получить, как сортировать данные и сколько элементов нужно получить.

Чтобы загрузить следующую партию данных, передайте URL-адрес, возвращенный из метода GetNextLink(), вместе с экземпляром GraphServiceClient в объект UserMessagesCollectionRequest:

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

После получения второй страницы результатов вы можете узнать о наличии дополнительных данных путем вызова метода GetNextLink().

Предостережение

Microsoft Graph следует стандарту OData 4. Частью стандарта является возможность использовать сочетание параметров $top и $skip (методы Top и Skip в SDK Microsoft Graph) для получения определенной страницы данных. Это невозможно при работе с электронной почтой, так как папка электронной почты может содержать данные, отличные от сообщений электронной почты, которые могут изменить разбивку на страницы. Поэтому при работе с электронной почтой всегда следует использовать указанный выше метод для загрузки дополнительных данных.

Дальнейшие действия

Давайте расширим приложение так, чтобы пользователи с его помощью могли загружать больше сообщений электронной почты пакетами.