event: delta
Namespace: microsoft.graph
Dient zum Abrufen von Ereignisressourcen, die in einer calendarView (ein durch Start- und Enddatum definierter Ereignisbereich) des Primärkalenders des Nutzers hinzugefügt, gelöscht oder aktualisiert wurden.
Die Synchronisierung von Ereignissen in einer calendarView in einem lokalen Speicher erfordert in der Regel eine Reihe von Aufrufen von Deltafunktionen. Der erste Aufruf ist eine vollständige Synchronisierung. Jeder nachfolgende Delta-Aufruf in derselben Runde erhält die inkrementellen Änderungen (Hinzufügungen, Löschungen oder Aktualisierungen). So können Sie einen lokalen Speicher von Ereignissen in der angegebenen calendarView pflegen und synchronisieren, ohne jedes Mal alle Ereignisse dieses Kalenders vom Server abrufen zu müssen.
Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.
Globaler Dienst | US Government L4 | US Government L5 (DOD) | China, betrieben von 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Berechtigungen
Wählen Sie für diese API die Als am wenigsten privilegierten Berechtigungen gekennzeichneten Berechtigungen aus. Verwenden Sie nur dann eine Berechtigung mit höheren Berechtigungen , wenn dies für Ihre App erforderlich ist. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.
Berechtigungstyp | Berechtigungen mit den geringsten Berechtigungen | Berechtigungen mit höheren Berechtigungen |
---|---|---|
Delegiert (Geschäfts-, Schul- oder Unikonto) | Calendars.Read | Calendars.ReadBasic, Calendars.ReadWrite |
Delegiert (persönliches Microsoft-Konto) | Calendars.Read | Calendars.ReadBasic, Calendars.ReadWrite |
Anwendung | Calendars.Read | Calendars.ReadBasic, Calendars.ReadWrite |
HTTP-Anforderung
GET /me/calendarView/delta?startDateTime={start_datetime}&endDateTime={end_datetime}
GET /users/{id}/calendarView/delta?startDateTime={start_datetime}&endDateTime={end_datetime}
Abfrageparameter
Das Nachverfolgen von Änderungen in Ereignissen verursacht eine Runde von einem oder mehreren Deltafunktionsaufrufen. Wenn Sie Abfrageparameter (außer $deltatoken
und $skiptoken
) verwenden, müssen Sie sie in der ursprünglichen Delta-Anforderung angeben. Microsoft Graph codiert automatisch alle angegebenen Parameter in den Tokenteil der in der Antwort enthaltenen @odata.nextLink
- oder @odata.deltaLink
-URL. Sie müssen alle gewünschten Abfrageparameter nur einmal im Vorfeld angeben.
Kopieren Sie in nachfolgenden Anforderungen einfach die - oder @odata.deltaLink
-@odata.nextLink
URL aus der vorherigen Antwort, und wenden Sie sie an, da diese URL bereits die codierten gewünschten Parameter enthält.
Abfrageparameter | Typ | Beschreibung |
---|---|---|
startDateTime | String | Startdatum und -uhrzeit des Zeitraums, dargestellt im ISO 8601-Format. Beispielsweise „2015-11-08T19:00:00.0000000“. |
endDateTime | String | Enddatum und -uhrzeit des Zeitbereichs, dargestellt im ISO 8601-Format. Beispiel: "2015-11-08T20:00:00.0000000". |
$deltatoken | string | Ein Zustandstoken, das in der @odata.deltaLink URL des vorherigen Delta-Funktionsaufrufs für dieselbe Kalenderansicht zurückgegeben wird und den Abschluss dieser Änderungsnachverfolgungsrunde angibt. Speichern Und anwenden Sie die gesamte @odata.deltaLink URL einschließlich dieses Tokens in der ersten Anforderung der nächsten Änderungsnachverfolgungsrunde für diese Kalenderansicht. |
$skiptoken | string | Ein Statustoken, das in der @odata.nextLink -URL des vorhergehenden delta-Funktionsaufrufs zurückgegeben wird und anzeigt, dass in derselben Kalenderansicht weitere Änderungen zum Nachverfolgen vorliegen. |
OData-Abfrageparameter
Sie können erwarten, dass ein Delta-Funktionsaufruf auf einer calendarView die gleichen Eigenschaften zurückgibt, die Sie normalerweise von einer
GET /calendarView
Anforderung erhalten würden. Sie können$select
nicht verwenden, um nur eine Teilmenge dieser Eigenschaften zu erhalten.Es gibt weitere OData-Abfrageparameter, die die Delta-Funktion für calendarView nicht unterstützten:
$expand
,$filter
,$orderby
und$search
.
Anforderungsheader
Name | Typ | Beschreibung |
---|---|---|
Authorization | string | Bearer {token}. Erforderlich. Erfahren Sie mehr über die Authentifizierung und Autorisierung. |
Content-Type | string | application/json. Erforderlich. |
Prefer | string | odata.maxpagesize={x}. Optional. |
Prefer | string | {Zeitzone}. Optional, UTC wird angenommen, wenn sie nicht vorhanden ist. |
Antwort
Wenn die Methode erfolgreich verläuft, werden der Antwortcode 200 OK
und das event-Sammlungsobjekt im Antworttext zurückgegeben.
Innerhalb einer Runde von Delta-Funktionsaufrufen, die durch den Datumsbereich einer calendarView gebunden sind, finden Sie möglicherweise einen Delta-Aufruf, der zwei Arten von Ereignissen unter @removed
mit dem Grund deleted
zurückgibt:
- Ereignisse, die innerhalb der Datumsangaben liegen und die seit dem letzten Delta-Aufruf gelöscht worden sind.
- Ereignisse, die außerhalb der Datumsangaben liegen und die seit dem letzten Delta-Aufruf hinzugefügt, gelöscht oder aktualisiert worden sind.
Filtern Sie die Ereignisse unter @removed
nach den Datumsangaben, die für Ihr Szenario erforderlich sind.
Beispiel
Anforderung
Das folgende Beispiel zeigt, wie Sie einen einzelnen delta-Funktionsaufruf ausführen und die maximale Anzahl von Ereignissen im Antworttext auf 2 beschränken.
Zum Nachverfolgen von Änderungen in einer Kalenderansicht führen Sie einen oder mehrere delta-Funktionsaufrufe mit entsprechenden Statustoken aus, um den Satz der inkrementellen Änderungen seit der letzten Delta-Abfrage abzurufen.
GET https://graph.microsoft.com/v1.0/me/calendarView/delta?startdatetime={start_datetime}&enddatetime={end_datetime}
Prefer: odata.maxpagesize=2
Antwort
Wenn die Anforderung erfolgreich ist, enthält die Antwort ein Zustandstoken, bei dem es sich entweder um ein skipToken (in einem @odata.nextLink-Antwortheader ) oder ein deltaToken (in einem Antwortheader @odata.deltaLink ) handelt. Sie geben jeweils an, ob Sie mit der Runde fortfahren sollten oder ob Sie alle Änderungen für diese Runde abgeschlossen haben.
Die Antwort unten zeigt ein skipToken in einem @odata.nextLink-Antwortheader.
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt sein.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.nextLink":"https://graph.microsoft.com/v1.0/me/calendarView/delta?$skiptoken={_skipToken_}",
"value": [
{
"originalStartTimeZone": "originalStartTimeZone-value",
"originalEndTimeZone": "originalEndTimeZone-value",
"responseStatus": {
"response": "response-value",
"time": "datetime-value"
},
"transactionId": null,
"iCalUId": "iCalUId-value",
"reminderMinutesBeforeStart": 99,
"isDraft": false,
"isReminderOn": true
}
]
}