Laden der E-Mails eines Benutzers in Batches

Abgeschlossen

Sie haben eine JavaScript-App erstellt, mit Microsoft 365 verbunden und die letzten 10 E-Mails des Benutzers mithilfe von Microsoft Graph angezeigt. Lassen Sie uns nun die App erweitern, sodass Benutzer ihre E-Mails in Batches von 10 Elementen laden können.

Abrufen von ausgelagerten Daten mithilfe von Microsoft Graph

Wenn Sie eine Microsoft Graph-API aufrufen, die eine Sammlung von Daten zurückgibt, z. B. die zuvor verwendete Nachrichten-API, erhalten Sie eine Teilmenge der in Microsoft 365 gespeicherten Daten. Um zu überprüfen, ob Ihre App weitere Daten abrufen kann, überprüfen Sie, ob die Antwort die Eigenschaft @odata.nextLink enthält.

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

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

Die Eigenschaft @odata.nextLink enthält eine vollständige URL, welche Sie aufrufen können, um die zweite Seite der Resultate abzurufen. Diese URL bewahrt alle Konfigurationen aus der ersten Anfrage, z. B. welche Eigenschaften abgerufen werden sollen, wie die Daten sortiert werden sollen und wie viele Elemente abgerufen werden sollen.

Um den nächsten Datenbatch zu laden, übergeben Sie die in @odata.nextLink zurückgegebene URL an 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();
}

Nachdem Sie die zweite Seite der Ergebnisse abgerufen haben, können Sie feststellen, ob weitere Daten zur Verfügung stehen, indem Sie überprüfen, ob die Ergebnisse über den Eigenschaftensatz „@odata.nextLink“ verfügen.

Achtung

Microsoft Graph folgt dem OData 4-Standard. Ein Teil des Standards ist die Möglichkeit, die Kombination der Parameter $top und $skip (die Methoden top und skip im Microsoft Graph-SDK) zu verwenden, um eine bestimmte Seite von Daten abzurufen. Dies ist bei der Arbeit mit E-Mails nicht möglich, da ein E-Mail-Ordner auch andere Daten als E-Mails enthalten kann, was das Paging beeinflussen könnte. Aus diesem Grund sollten Sie beim Arbeiten mit E-Mails immer den @odata.nextLink-Wert verwenden, um weitere Daten zu laden.

Nächste Schritte

Lassen Sie uns die App so erweitern, dass Benutzer weitere E-Mails in Batches laden können.