Dient zum Abrufen inkrementeller Änderungen für Benutzer.
Artikel
8 Minuten Lesedauer
Mit der Delta-Abfrage in Microsoft Graph können Sie Ergänzungen, Löschungen oder Aktualisierungen unterstützter Ressourcen abfragen. Sie wird durch eine Reihe von Delta -Anforderungen aktiviert. Bei Benutzern können Sie mit der Delta-Abfrage Änderungen feststellen, ohne den gesamten Satz von Benutzern abrufen zu müssen, um Änderungen zu vergleichen.
Clients, die Benutzer mit einem lokalen Profilspeicher synchronisieren, können die Delta-Abfrage sowohl für ihre anfängliche vollständige Synchronisierung als auch für nachfolgende schrittweise erfolgende Synchronisierungen verwenden. Normalerweise führt ein Client eine erste vollständige Synchronisierung aller Benutzer in einem Mandanten durch und erhält dann regelmäßig schrittweise erfolgende Änderungen an den Benutzern.
Nachverfolgen von Änderungen an Benutzern
Nachverfolgen von Benutzeränderungen über eine oder mehrere GET-Anforderungen mit der Delta-Funktion. Die GET-Anforderung ähnelt einer Nutzerlisten-Anforderung, mit Ausnahme der folgenden zusätzlichen Objekte in der URL:
Die Delta-Funktion.
Ein Statustoken (deltaToken oder skipToken) aus dem vorherigen GET-Delta-Funktionsaufruf.
Beispiel: Nachverfolgung von Änderungen an Benutzern
Das folgende Beispiel zeigt eine Reihe von Anforderungen zum Nachverfolgen von Änderungen an Benutzern:
Wenn der Benutzer gelöscht wurde, enthält das Element eine Anmerkung: @removed mit einem Wert von "reason": "changed".
Wenn der Benutzer dauerhaft gelöscht wurde, enthält das Element eine Anmerkung: @removed mit einem Wert von "reason": "deleted".
Wenn der Benutzer erstellt oder wiederhergestellt wird, gibt es keine Anmerkung.
Ursprüngliche Anforderung
Um Änderungen in der Benutzerressource nachzuverfolgen, stellen Sie eine Anforderung, und schließen Sie die Delta-Funktion als URL-Segment ein.
Beachten Sie die folgenden Elemente:
Der optionale $select-Abfrageparameter wird in die Anforderung eingeschlossen, um zu veranschaulichen, wie Abfrageparameter automatisch in zukünftige Anforderungen eingeschlossen werden.
Die ursprüngliche Anforderung enthält keinen Zustands-Token. Statustoken werden in nachfolgenden Anforderungen verwendet.
GET https://graph.microsoft.com/v1.0/users/delta?$select=displayName,givenName,surname
var graphClient = new GraphServiceClient(requestAdapter);
var result = await graphClient.Users.Delta.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Select = new string []{ "displayName","givenName","surname" };
});
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestConfiguration = new DeltaRequestBuilderGetRequestConfiguration();
$queryParameters = new DeltaRequestBuilderGetQueryParameters();
$queryParameters->select = ["displayName","givenName","surname"];
$requestConfiguration->queryParameters = $queryParameters;
$requestResult = $graphServiceClient->users()->delta()->get($requestConfiguration);
Wenn die Methode erfolgreich verläuft, werden der Antwortcode 200 OK und das user-Sammlungsobjekt im Antworttext zurückgegeben. Wenn der gesamte Satz von Benutzern zu groß ist, enthält die Antwort auch einen @odata.nextLink Status-Token in einem @odata.nextLink Parameter.
In diesem Beispiel wird eine @odata.nextLink URL zurückgegeben, die angibt, dass in der Sitzung weitere Seiten mit Daten abgerufen werden müssen. Der $select Abfrageparameter aus der ursprünglichen Anforderung wird in der @odata.nextLink URL codiert.
Die zweite Anforderung gibt das aus der vorherigen Antwort zurückgegebene skipToken an. Beachten Sie, dass der $select Parameter codiert und in der skipTokenenthalten ist.
GET https://graph.microsoft.com/v1.0/users/delta?$skiptoken=oEBwdSP6uehIAxQOWq_3Ksh_TLol6KIm3stvdc6hGhZRi1hQ7Spe__dpvm3U4zReE4CYXC2zOtaKdi7KHlUtC2CbRiBIUwOxPKLa
var graphClient = new GraphServiceClient(requestAdapter);
var result = await graphClient.Users.Delta.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Skiptoken = "oEBwdSP6uehIAxQOWq_3Ksh_TLol6KIm3stvdc6hGhZRi1hQ7Spe__dpvm3U4zReE4CYXC2zOtaKdi7KHlUtC2CbRiBIUwOxPKLa";
});
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestConfiguration = new DeltaRequestBuilderGetRequestConfiguration();
$queryParameters = new DeltaRequestBuilderGetQueryParameters();
$queryParameters->skiptoken = "oEBwdSP6uehIAxQOWq_3Ksh_TLol6KIm3stvdc6hGhZRi1hQ7Spe__dpvm3U4zReE4CYXC2zOtaKdi7KHlUtC2CbRiBIUwOxPKLa";
$requestConfiguration->queryParameters = $queryParameters;
$requestResult = $graphServiceClient->users()->delta()->get($requestConfiguration);
Die Antwort enthält einen anderen @odata.nextLink mit einem neuen skipToken Wert, der angibt, dass weitere Änderungen, die für Benutzer nachverfolgt wurden, verfügbar sind. Verwenden Sie die @odata.nextLink URL in weiteren Anforderungen, bis @odata.deltaLink in der endgültigen Antwort eine URL (in einem @odata.deltaLink Parameter) zurückgegeben wird, auch wenn der Wert eine leere Anordnung ist.
GET https://graph.microsoft.com/v1.0/users/delta?$skiptoken=pqwSUjGYvb3jQpbwVAwEL7yuI3dU1LecfkkfLPtnIjtQ5LOhVoS7qQG_wdVCHHlbQpga7
var graphClient = new GraphServiceClient(requestAdapter);
var result = await graphClient.Users.Delta.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Skiptoken = "pqwSUjGYvb3jQpbwVAwEL7yuI3dU1LecfkkfLPtnIjtQ5LOhVoS7qQG_wdVCHHlbQpga7";
});
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestConfiguration = new DeltaRequestBuilderGetRequestConfiguration();
$queryParameters = new DeltaRequestBuilderGetQueryParameters();
$queryParameters->skiptoken = "pqwSUjGYvb3jQpbwVAwEL7yuI3dU1LecfkkfLPtnIjtQ5LOhVoS7qQG_wdVCHHlbQpga7";
$requestConfiguration->queryParameters = $queryParameters;
$requestResult = $graphServiceClient->users()->delta()->get($requestConfiguration);
Wenn eine @odata.deltaLink URL zurückgegeben wird, gibt es keine weiteren Daten über den vorhandenen Status der Benutzerobjekte. Für zukünftige Anforderungen verwendet die Anwendung die @odata.deltaLink URL, um von weiteren Änderungen an Benutzern zu erfahren. Speichern Sie die deltaToken und verwenden Sie diese in der nachfolgenden Anforderungs-URL, um weitere Änderungen an Benutzern zu ermitteln.
Mithilfe der deltaToken aus der letzten Antwort erhalten Sie Änderungen (Ergänzungen, Löschungen oder Aktualisierungen) an Benutzern seit der letzten Anforderung.
GET https://graph.microsoft.com/v1.0/users/delta?$deltatoken=oEcOySpF_hWYmTIUZBOIfPzcwisr_rPe8o9M54L45qEXQGmvQC6T2dbL-9O7nSU-njKhFiGlAZqewNAThmCVnNxqPu5gOBegrm1CaVZ-ZtFZ2tPOAO98OD9y0ao460
var graphClient = new GraphServiceClient(requestAdapter);
var result = await graphClient.Users.Delta.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Deltatoken = "oEcOySpF_hWYmTIUZBOIfPzcwisr_rPe8o9M54L45qEXQGmvQC6T2dbL-9O7nSU-njKhFiGlAZqewNAThmCVnNxqPu5gOBegrm1CaVZ-ZtFZ2tPOAO98OD9y0ao460";
});
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestConfiguration = new DeltaRequestBuilderGetRequestConfiguration();
$queryParameters = new DeltaRequestBuilderGetQueryParameters();
$queryParameters->deltatoken = "oEcOySpF_hWYmTIUZBOIfPzcwisr_rPe8o9M54L45qEXQGmvQC6T2dbL-9O7nSU-njKhFiGlAZqewNAThmCVnNxqPu5gOBegrm1CaVZ-ZtFZ2tPOAO98OD9y0ao460";
$requestConfiguration->queryParameters = $queryParameters;
$requestResult = $graphServiceClient->users()->delta()->get($requestConfiguration);
Wenn Änderungen aufgetreten sind, ist eine Auflistung geänderter Benutzerobjekte enthalten. Die Antwort enthält zudem @odata.nextLink – falls mehrere Seiten mit Änderungen abgerufen werden müssen – oder @odata.deltaLink. Implementieren Sie das gleiche Muster, dem @odata.nextLink endgültigen Aufruf folgen und behalten Sie es für zukünftige Aufrufe @odata.deltaLink bei.
Hinweis
Bei dieser Anforderung kann es zu Replikationsverzögerungen für Benutzer kommen, die kürzlich erstellt, aktualisiert oder gelöscht wurden. Wiederholen Sie die @odata.nextLink oder @odata.deltaLink nach einiger Zeit, um die neuesten Änderungen abzurufen.