chatMessage: delta

Namespace: microsoft.graph

Wichtig

Die APIs unter der /beta Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.

Rufen Sie die Liste der Nachrichten aus allen Chats ab, an denen ein Benutzer teilnimmt, einschließlich Einzelchats, Gruppenchats und Besprechungschats. Wenn Sie Delta-Abfragen verwenden, können Sie neue oder aktualisierte Meldungen abrufen.

Anmerkung: Delta gibt nur Nachrichten innerhalb der letzten acht Monate zurück. Sie können GET /users/{id | user-principal-name}/chats/getAllMessages verwenden, um ältere Nachrichten abzurufen. Die Delta-Abfrage unterstützt sowohl die vollständige Synchronisierung, die alle Nachrichten aus allen Chats abruft, an denen ein Benutzer beteiligt ist, als auch die inkrementelle Synchronisierung, bei der Nachrichten seit der letzten Synchronisierung hinzugefügt oder geändert werden. In der Regel führen Sie eine anfängliche vollständige Synchronisierung durch und erhalten dann in regelmäßigen Abständen inkrementelle Änderungen an dieser Nachrichtenansicht.

Um die Antworten für eine Nachricht abzurufen, verwenden Sie die Listennachrichtenantworten oder die Vorgänge zum Abrufen von Nachrichtenantworten .

Eine GET-Anforderung mit der Delta-Funktion gibt eine der folgenden Rückgaben zurück:

  • Ein @odata.nextLink , der eine URL mit einem Delta-Funktionsaufruf und einem skipTokenenthält.
  • Ein @odata.deltaLink , der eine URL mit einem Delta-Funktionsaufruf und einem deltaTokenenthält.

Zustandstoken sind für den Client nicht transparent. Um mit einer Runde der Änderungsnachverfolgung fortzufahren, kopieren Sie die url @odata.nextLink oder @odata.deltaLink , die von der letzten GET-Anforderung zurückgegeben wurde, und wenden Sie sie an den nächsten Delta-Funktionsaufruf an. Ein in einer Antwort zurückgegebener @odata.deltaLink bedeutet, dass die aktuelle Runde der Änderungsnachverfolgung abgeschlossen ist. Sie können die @odata.deltaLink-URL speichern und verwenden, wenn Sie mit dem Abrufen weiterer Änderungen beginnen (Nachrichten wurden geändert oder veröffentlicht, nachdem Sie @odata.deltaLink abgerufen haben).

Weitere Informationen hierzu finden Sie in der Dokumentation zur delta-Abfrage.

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) Nicht unterstützt Nicht unterstützt
Delegiert (persönliches Microsoft-Konto) Nicht unterstützt Nicht unterstützt
Anwendung Chat.Read.All Chat.ReadWrite.All

HTTP-Anforderung

GET /users/{id | user-principal-name}/chats/getAllMessages/delta

Abfrageparameter

Das Nachverfolgen von Änderungen in Nachrichten 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 alle angegebenen Parameter automatisch in den Tokenteil der @odata.nextLink - oder @odata.deltaLink-URL , die in der Antwort angegeben wird.

Sie müssen Abfrageparameter nur einmal angeben.

Kopieren Sie in nachfolgenden Anforderungen die @odata.nextLink - oder @odata.deltaLink-URL aus der vorherigen Antwort, und wenden Sie sie an, da diese URL bereits die codierten Parameter enthält.

Abfrageparameter Typ Beschreibung
$deltatoken String Ein Zustandstoken, das in der @odata.deltaLink-URL des vorherigen Delta-Funktionsaufrufs zurückgegeben wird und angibt, dass diese Runde der Änderungsnachverfolgung abgeschlossen wurde. Speichern Sie die gesamte @odata.deltaLink-URL , einschließlich dieses Tokens, und wenden Sie sie in der ersten Anforderung der nächsten Iteration der Änderungsnachverfolgung für diese Sammlung an.
$skiptoken String Ein Zustandstoken, das in der @odata.nextLink-URL des vorherigen Delta-Funktionsaufrufs zurückgegeben wird und angibt, dass weitere Änderungen zum Nachverfolgen verfügbar sind.

Optionale OData-Abfrageparameter

Diese API unterstützt die folgenden OData-Abfrageparameter:

  • $top stellt die maximale Anzahl von Nachrichten dar, die in einem Aufruf abgerufen werden sollen. Die Obergrenze ist 50.
  • $skip gibt an, wie viele Nachrichten am Anfang der Liste übersprungen werden sollen.
  • $filter gibt Nachrichten zurück, die einem bestimmten Kriterium entsprechen. Die einzige Eigenschaft, die Filter unterstützt, ist lastModifiedDateTime, and only the gtoperator is supported. For example,.. /messages/delta?$filter=lastModifiedDateTime gt 2024-08-27T07:13:28.000z' ruft alle Nachrichten ab, die nach dem angegebenen Datum und der angegebenen Uhrzeit erstellt oder geändert wurden.

Anforderungsheader

Kopfzeile Wert
Authorization Bearer {token}. Erforderlich. Erfahren Sie mehr über die Authentifizierung und Autorisierung.

Anforderungstext

Geben Sie keinen Anforderungstext für diese Methode an.

Antwort

Wenn die Methode erfolgreich verläuft, werden der Antwortcode 200 OK und eine Sammlung von chatMessage-Objekten im Antworttext zurückgegeben. Die Antwort enthält auch eine @odata.nextLink-URL oder eine @odata.deltaLink-URL .

Beispiele

Beispiel 1: Erstsynchronisierung

Das folgende Beispiel zeigt eine Reihe von drei Anforderungen zum Synchronisieren der Nachrichten. Die Antwort besteht aus drei Nachrichten:

Aus Gründen der Übersichtlichkeit zeigen die Beispielantworten nur eine Teilmenge der Eigenschaften für eine Nachricht an. In einem tatsächlichen Aufruf werden die meisten Nachrichteneigenschaften zurückgegeben.

Sehen Sie sich auch an, was Sie in der nächsten Runde tun können, um weitere Nachrichten zu erhalten.

Ursprüngliche Anforderung

In diesem Beispiel werden die Chatnachrichten zum ersten Mal synchronisiert, und die anfängliche Synchronisierungsanforderung enthält kein Zustandstoken.

Die Anforderung gibt den optionalen $top Abfrageparameter an, der zwei Nachrichten gleichzeitig zurückgibt.

GET https://graph.microsoft.com/beta/users/5ed12dd6-24f8-4777-be3d-0d234e06cefa/chats/getAllMessages/delta?$top=2

Antwort auf die ursprüngliche Anforderung

Die Antwort enthält zwei Nachrichten und einen @odata.nextLink-Antwortheader mit einem skipToken. Die url @odata.nextLink gibt an, dass weitere Nachrichten in den Chats abgerufen werden können.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#Collection(microsoft.graph.chatMessage)",
  "@odata.nextLink": "https://graph.microsoft.com/beta/users/5ed12dd6-24f8-4777-be3d-0d234e06cefa/chats/getAllMessages/delta?$skiptoken=a-5fqdzHFr_L_cc7C0q1F-HCB8Z9SjwOsMN37XV5yfSnYgK4jVGVGEl25GFlxKWq0Wv6quL-5qcNg4nUnxzof6namZ_DM5no-hcL515cSrRGDoRLn38fZE1AXoDugSTOohOq3YRCYLqJbFGIoovMPTar32oLuoltHixme-Bf1lZtscv1wv5uu-MtkpYZIT0uDw-umQUK7mLNjMcyhNaifDrdemGUDMaQ25_QuHukNbkXcxsKMJdJ288p9IkaSeEyJHX5a6T_kEdAmuffsdzOGY8mLbLc7VEsUL75rGdt2aiKkywaPHsT9bDGV7MBo7WM2g_kdPeLdRPSdSxxhkGpNA.y_WMscy7negz0HZPhgjH-YyzsdeXzr2UDSfNrdzC78A",
  "value": [
    {
      "replyToId": null,
      "etag": "1727366299993",
      "messageType": "message",
      "createdDateTime": "2024-09-26T15:58:19.993Z",
      "lastModifiedDateTime": "2024-09-26T15:58:19.993Z",
      "lastEditedDateTime": null,
      "deletedDateTime": null,
      "subject": "",
      "summary": null,
      "chatId": "19:65a44130a0f249359d77858287ed39f0@thread.v2",
      "importance": "normal",
      "locale": "en-us",
      "webUrl": null,
      "channelIdentity": null,
      "policyViolation": null,
      "eventDetail": null,
      "id": "1727366299993",
      "from": {
        "application": null,
        "device": null,
        "user": {
          "@odata.type": "#microsoft.graph.teamworkUserIdentity",
          "id": "43383bf2-f7ab-4ba3-bf5e-12d071db189b",
          "displayName": "CFCC5",
          "userIdentityType": "aadUser",
          "tenantId": "f54e6700-e876-410b-8996-d6447d64098a"
        }
      },
      "body": {
        "contentType": "html",
        "content": "<div>\n<div itemprop=\"copy-paste-block\">reply 9&nbsp;to new conv</div>\n</div>"
      },
      "attachments": [],
      "mentions": [],
      "reactions": []
    },
    {
      "replyToId": null,
      "etag": "1727216579286",
      "messageType": "message",
      "createdDateTime": "2024-09-24T22:22:59.286Z",
      "lastModifiedDateTime": "2024-09-24T22:22:59.286Z",
      "lastEditedDateTime": null,
      "deletedDateTime": null,
      "subject": "",
      "summary": null,
      "chatId": "19:2a247d5dadc24f408d009e4ae84502cf@thread.v2",
      "importance": "normal",
      "locale": "en-us",
      "webUrl": null,
      "channelIdentity": null,
      "policyViolation": null,
      "eventDetail": null,
      "id": "1727216579286",
      "from": {
        "application": null,
        "device": null,
        "user": {
          "@odata.type": "#microsoft.graph.teamworkUserIdentity",
          "id": "43383bf2-f7ab-4ba3-bf5e-12d071db189b",
          "displayName": "CFCC5",
          "userIdentityType": "aadUser",
          "tenantId": "f54e6700-e876-410b-8996-d6447d64098a"
        }
      },
      "body": {
        "contentType": "html",
        "content": "<div>\n<div itemprop=\"copy-paste-block\">reply 10 to new conv</div>\n</div>"
      },
      "attachments": [],
      "mentions": [],
      "reactions": []
    }
  ]
}

Zweite Anforderung

Die zweite Anforderung gibt die @odata.nextLink-URL an, die von der vorherigen Antwort zurückgegeben wurde. Beachten Sie, dass nicht mehr derselbe $top Parameter wie in der ursprünglichen Anforderung angegeben werden muss, da die skipToken in der @odata.nextLink-URL codiert und diese Parameter enthält.

GET https://graph.microsoft.com/beta/users/5ed12dd6-24f8-4777-be3d-0d234e06cefa/chats/getAllMessages/delta?&%24skiptoken=a-5fqdzHFr_L_cc7C0q1F-HCB8Z9SjwOsMN37XV5yfSnYgK4jVGVGEl25GFlxKWq0Wv6quL-5qcNg4nUnxzof6namZ_DM5no-hcL515cSrRGDoRLn38fZE1AXoDugSTOohOq3YRCYLqJbFGIoovMPTar32oLuoltHixme-Bf1lZtscv1wv5uu-MtkpYZIT0uDw-umQUK7mLNjMcyhNaifMIVTT-htmEOClLVwgcyWLR-sl9Qb73uTTtPXdFdMK6FDE4gpwvvKxvo2ChsW2c4eo77LDh6ZL_WQ8Luq00koQ6vHIrLBHPMUdOAxDxu-U7N7H4hsFn9aRDRdwRky7067A.V2a-J-86yXTd9SJMA4CHP6enI-Ab-bQzRgYujwsIwDo

Antwort auf die zweite Anforderung

Die zweite Antwort gibt die nächsten beiden Nachrichten und einen @odata.nextLink-Antwortheader mit einem zurück skipToken , der angibt, dass weitere Nachrichten zum Abrufen verfügbar sind.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#Collection(microsoft.graph.chatMessage)",
  "@odata.nextLink": "https://graph.microsoft.com/beta/users/5ed12dd6-24f8-4777-be3d-0d234e06cefa/chats/getAllMessages/delta?$skiptoken=yJQeoV00BlfhYsCMsrn1GnNz7v5S39NShp1U4rzLZnPsraIATwnnsvbdv52hvKp7AAG-Bcwdu7dA7UweXHvGYQ2M5eysh-cNz6EZICZp7kM9HtmQHu7JU-_sX5S1edvEQxyAgm1R2HXk4R9_TWn9ZAu1BRQ-elS9hg0f8BlwKLCIluuSPS2ZuNVnQTOOYMMpmzKGX4wVVQUv0UlrIFZIPWTeriNpg5sJFd91n2GHSMnS7WaRTh3NSmvJE08ww-2CjGml2RjPyHfLHSqywuNt5BGNVj_vqsLbjetdDIYZFa_yaQqV_Bp5DaWM_nXD8RjVULH7H4ATXoUiG3Etsd_Nhd_GIYoxV6x2_rmbh928WPGSsenCOa352tyFxmuyTH0ozDmU4onVbGnOBQEYJDKZjuIeNVW-E19VHthjZ9GvYGE.NHJkfAbRu3Qoozl699AinriiHvWofLVnWkB5wEJmZlk",
  "value": [
    {
      "replyToId": null,
      "etag": "1726706286844",
      "messageType": "message",
      "createdDateTime": "2024-09-19T00:38:06.844Z",
      "lastModifiedDateTime": "2024-09-19T00:38:06.844Z",
      "lastEditedDateTime": null,
      "deletedDateTime": null,
      "subject": "",
      "summary": null,
      "chatId": "19:65a44130a0f249359d77858287ed39f0@thread.v2",
      "importance": "normal",
      "locale": "en-us",
      "webUrl": null,
      "channelIdentity": null,
      "policyViolation": null,
      "eventDetail": null,
      "id": "1726706286844",
      "from": {
        "application": null,
        "device": null,
        "user": {
          "@odata.type": "#microsoft.graph.teamworkUserIdentity",
          "id": "43383bf2-f7ab-4ba3-bf5e-12d071db189b",
          "displayName": "CFCC5",
          "userIdentityType": "aadUser",
          "tenantId": "f54e6700-e876-410b-8996-d6447d64098a"
        }
      },
      "body": {
        "contentType": "html",
        "content": "<p>Not one message, but several combined together to give you the full picture</p>"
      },
      "attachments": [],
      "mentions": [],
      "reactions": []
    },
    {
      "replyToId": null,
      "etag": "1726706276201",
      "messageType": "message",
      "createdDateTime": "2024-09-19T00:37:56.201Z",
      "lastModifiedDateTime": "2024-09-19T00:37:56.201Z",
      "lastEditedDateTime": null,
      "deletedDateTime": null,
      "subject": "",
      "summary": null,
      "chatId": "19:65a44130a0f249359d77858287ed39f0@thread.v2",
      "importance": "normal",
      "locale": "en-us",
      "webUrl": null,
      "channelIdentity": null,
      "policyViolation": null,
      "eventDetail": null,
      "id": "1726706276201",
      "from": {
        "application": null,
        "device": null,
        "user": {
          "@odata.type": "#microsoft.graph.teamworkUserIdentity",
          "id": "43383bf2-f7ab-4ba3-bf5e-12d071db189b",
          "displayName": "CFCC5",
          "userIdentityType": "aadUser",
          "tenantId": "f54e6700-e876-410b-8996-d6447d64098a"
        }
      },
      "body": {
        "contentType": "html",
        "content": "<p>Dive into the possibilities of incorporating context into ML evaluations by looking at entire conversations</p>"
      },
      "attachments": [],
      "mentions": [],
      "reactions": []
    }
  ]
}

Dritte Anforderung

Die dritte Anforderung verwendet weiterhin den neuesten @odata.nextLink , der von der letzten Synchronisierungsanforderung zurückgegeben wurde.

GET  https://graph.microsoft.com/beta/users/5ed12dd6-24f8-4777-be3d-0d234e06cefa/chats/getAllMessages/delta?$skiptoken=8UusBixEHS9UUau6uGcryrA6FpnWwMJbuTYILM1PArHxnZzDVcsHQrijNzCyIVeEauMQsKUfMhNjLWFs1o4sBS_LofJ7xMftZUfec_pijuT6cAk5ugcWCca9RCjK7iVj.DKZ9w4bX9vCR7Sj9P0_qxjLAAPiEZgxlOxxmCLMzHJ4

Antwort auf die dritte Anforderung

Die dritte Antwort gibt die einzigen verbleibenden Nachrichten und einen @odata.deltaLink-Antwortheader mit einem zurück deltaToken , der angibt, dass alle Nachrichten zurückgegeben werden. Speichern Sie die @odata.deltaLink-URL , und verwenden Sie sie, um alle neuen Nachrichten abzufragen, die ab diesem Zeitpunkt hinzugefügt oder geändert wurden.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#Collection(microsoft.graph.chatMessage)",
  "@odata.deltaLink": "https://graph.microsoft.com/beta/users/5ed12dd6-24f8-4777-be3d-0d234e06cefa/chats/getAllMessages/delta?$deltatoken=aQdvS1VwGCSRxVmZJqykmDik_JIC44iCZpv-GLiA2VnFuE5yG-kCEBROb2iaPT_y_eMWVQtBO_ejzzyIxl00ji-tQ3HzAbW4liZAVG88lO3nG_6-MBFoHY1n8y21YUzjocG-Cn1tCNeeLPLTzIe5Dw.EP9gLiCoF2CE_e6l_m1bTk2aokD9KcgfgfcLGqd1r_4",
  "value": [
    {
      "replyToId": null,
      "etag": "1726706340932",
      "messageType": "message",
      "createdDateTime": "2024-09-19T00:39:00.932Z",
      "lastModifiedDateTime": "2024-09-19T00:39:00.932Z",
      "lastEditedDateTime": null,
      "deletedDateTime": null,
      "subject": "",
      "summary": null,
      "chatId": "19:65a44130a0f249359d77858287ed39f0@thread.v2",
      "importance": "normal",
      "locale": "en-us",
      "webUrl": null,
      "channelIdentity": null,
      "policyViolation": null,
      "eventDetail": null,
      "id": "1726706340932",
      "from": {
        "application": null,
        "device": null,
        "user": {
          "@odata.type": "#microsoft.graph.teamworkUserIdentity",
          "id": "43383bf2-f7ab-4ba3-bf5e-12d071db189b",
          "displayName": "CFCC5",
          "userIdentityType": "aadUser",
          "tenantId": "f54e6700-e876-410b-8996-d6447d64098a"
        }
      },
      "body": {
        "contentType": "html",
        "content": "<p>let's get started!</p>"
      },
      "attachments": [],
      "mentions": [],
      "reactions": []
    }
  ]
}

Beispiel 2: Die nächste Runde zum Abrufen weiterer Nachrichten

Mit dem @odata.deltaLink aus der letzten Anforderung in der letzten Runde können Sie nur die Nachrichten abrufen, die seit dem Abrufen der @odata.deltaLink geändert (hinzugefügt oder aktualisiert) wurden. Ihre Anforderung sollte wie folgt aussehen, vorausgesetzt, Sie möchten die gleiche maximale Seitengröße in der Antwort beibehalten.

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

GET https://graph.microsoft.com/beta/users/5ed12dd6-24f8-4777-be3d-0d234e06cefa/chats/getAllMessages/delta?$deltatoken=aQdvS1VwGCSRxVmZJqykmDik_JIC44iCZpv-GLiA2VnFuE5yG-kCEBROb2iaPT_y_eMWVQtBO_ejzzyIxl00ji-tQ3HzAbW4liZAVG88lO3nG_6-MBFoHY1n8y21YUzjocG-Cn1tCNeeLPLTzIe5Dw.EP9gLiCoF2CE_e6l_m1bTk2aokD9KcgfgfcLGqd1r_4

Antwort

Das folgende Beispiel zeigt die Antwort.

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#Collection(chatMessage)",
  "@odata.deltaLink": "https://graph.microsoft.com/beta/users/5ed12dd6-24f8-4777-be3d-0d234e06cefa/chats/getAllMessages/delta?$deltatoken=aQdvS1VwGCSRxVmZJqykmDik_JIC44iCZpv-GLiA2VnFuE5yG-kCEBROb2iaPT_yjz2nsMoh1gXNtXii7s78HapCi5woifXqwXlVNxICh8wUUnvE2gExsa8eZ2Vy_ch5rVIhm067_1mUPML3iYUVyg.3o0rhgaBUduuxOr98An5pjBDP5JjKUiVWku3flSiOsk",
  "value": [
    {
      "replyToId": null,
      "etag": "1727366299999",
      "messageType": "message",
      "createdDateTime": "2024-09-26T15:58:19.993Z",
      "lastModifiedDateTime": "2024-09-26T17:58:19.993Z",
      "lastEditedDateTime": null,
      "deletedDateTime": null,
      "subject": "",
      "summary": null,
      "chatId": "19:65a44130a0f249359d77858287ed39f0@thread.v2",
      "importance": "normal",
      "locale": "en-us",
      "webUrl": null,
      "channelIdentity": null,
      "policyViolation": null,
      "eventDetail": null,
      "id": "1727366299999",
      "from": {
        "application": null,
        "device": null,
        "user": {
          "@odata.type": "#microsoft.graph.teamworkUserIdentity",
          "id": "43383bf2-f7ab-4ba3-bf5e-12d071db189b",
          "displayName": "CFCC5",
          "userIdentityType": "aadUser",
          "tenantId": "f54e6700-e876-410b-8996-d6447d64098a"
        }
      },
      "body": {
        "contentType": "html",
        "content": "newly added content"
      },
      "attachments": [],
      "mentions": [],
      "reactions": []
    }
  ]
}