Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit Microsoft Graph können Sie den vorhandenen Nachrichtenverlauf und die Daten von Benutzern aus einem externen System zu Teams migrieren. Benutzer können ihre Kommunikation nahtlos fortsetzen und ohne Unterbrechung fortfahren, indem sie die Wiederherstellung einer Plattform-Messaginghierarchie von Drittanbietern in Teams ermöglichen.
Berechtigungen
| Bereichsname | Anzeigename | Beschreibung | Typ | Administratorzustimmung erforderlich | Abgedeckte Entitäten/APIs |
|---|---|---|---|---|---|
| Teamwork.Migrate.All | Migration zu Microsoft Teams verwalten | Erstellen und Verwalten von Ressourcen für die Migration zu Teams. | Nur Anwendung | Ja | POST /team |
Hinweis
Die delegierte Authentifizierung wird nicht unterstützt.
Unterstützte Kanal- und Chattypen
Teams unterstützt die Migration externer Nachrichten zu vorhandenen Kanälen oder Chats. Verwenden Sie alle Kanäle oder Chats, die bereits in Teams vorhanden sind, unabhängig davon, wann Sie ihn erstellt haben. Mit diesem Ansatz können Sie vorhandenen Kontext zu Kanälen hinzufügen, die bereits in Teams aktiv sind, und die Kontinuität für laufende Unterhaltungen erhalten. Informationen zum Aktivieren des Migrationsmodus in einem vorhandenen Kanal oder Chat finden Sie unter Vorhandene Kanalmigration.
Hinweis
Verbundinhalte können nicht importiert werden. Alle importierten Inhalte müssen vom authentifizierten Mandanten stammen.
Die Anwendung, die in einem Thread aufruft startMigration , besitzt diese End-to-End-Migrationssitzung. Dieselbe App muss und completeMigrationaufrufenimportMessage. Keine andere App kann diese APIs im Thread aufrufen, bis die Migration der besitzenden App abgeschlossen ist.
migrationMode ist ein spezieller Zustand, der die Datenintegrität sicherstellt, indem bestimmte Vorgänge während der Datenmigration verhindert werden.
- Für alle unterstützten Kanäle und Chattypen:
- Es ermöglicht das Importieren von Verlaufsmeldungen mit benutzerdefinierten Zeitstempeln.
- Die ursprüngliche Konversationsstruktur und -hierarchie wird beibehalten.
Inhaltsbereich für den Import
Die folgende Tabelle enthält den Inhaltsbereich für vorhandene Kanäle und Chats.
| Importierbar | Außerhalb des Gültigkeitsbereichs |
|---|---|
| Team (allgemein) | Ankündigungen |
| Erstellungszeit der ursprünglichen Nachricht | Videos |
| Inlinebilder als Teil der Nachricht | Sticker |
| Links zu vorhandenen Dateien in Microsoft 365 (Microsoft 365) SharePoint Online (SPO) oder OneDrive (OD) | Crossposts zwischen Kanälen |
| Nachrichten mit Rich-Text | |
| Nachrichtenantwortkette | |
| Verarbeitung mit hohem Durchsatz | |
| 1:1- und Gruppenchatnachrichten | |
| Standard-, private und freigegebene Kanalnachrichten | |
| Bis zu 250 Reaktionen | |
| @mentions und Emojis | |
| Codeausschnitte | |
| Zitate |
Voraussetzungen
Analysieren und Vorbereiten von Nachrichtendaten
- Überprüfen Sie die Drittanbieterdaten, um zu entscheiden, was migriert werden soll.
- Extrahieren Sie die ausgewählten Daten aus dem Drittanbieter-Chatsystem.
- Ordnen Sie die Drittanbieter-Chatstruktur der Microsoft Teams-Struktur zu.
- Konvertieren Sie Importdaten in das format, das für die Migration erforderlich ist.
Richten Sie Ihren Microsoft 365-Mandanten ein.
- Stellen Sie sicher, dass ein Microsoft 365-Mandant für die Importdaten vorhanden ist. Weitere Informationen zum Einrichten eines Microsoft 365-Mandanten für Teams finden Sie unter Vorbereiten Ihres Microsoft 365-Mandanten.
- Stellen Sie sicher, dass sich die Teammitglieder in Microsoft Entra ID befinden. Weitere Informationen finden Sie unter Hinzufügen eines neuen Benutzers zu Microsoft Entra ID.
Importieren von verlaufsbezogenen Nachrichten in Teams
Sie können verlaufsbezogene Nachrichten nahtlos in vorhandene Kanäle oder Chats importieren, indem Sie die folgenden Schritte ausführen:
- Starten der Migration
- Überprüfen der status für die Migration
- Importieren von Nachrichten
- Vollständiger Migrationsmodus
- Überprüfen des Abschlusses des Migrationsmodus
Schritt 1: Starten der Migration
Um mit der Migration des Nachrichtenverlaufs eines Benutzers von einer Beliebigen Drittanbieterplattform zu Teams zu beginnen, können Sie einen vorhandenen Kanal oder Chat verwenden.
Starten der Migration in vorhandenen Kanälen und Chats
Verwenden Sie in vorhandenen Kanälen oder Chats die API, um den startMigrationKanalmigrationsmodus zu aktivieren , oder um den ChatmigrationsmodusstartMigration zu aktivieren, legt den Migrationsstatus auf fest InProgress und startet den Nachrichtenimportprozess. Weitere Informationen finden Sie unter:
Vorhandene Kanalmigration
Verwenden Sie die API, um den startMigration Migrationsmodus für vorhandene Kanäle zu aktivieren.
Anforderung (vorhandener Kanal im Migrationsmodus)
POST https://graph.microsoft.com/beta/teams/{team-id}/channels/{channel-id}/startMigration
{
"conversationCreationDateTime":"2024-01-01T00:00:00Z"
}
Tipp
Microsoft Graph verwendet DateTimeOffset , um Datum und Uhrzeit mit einem UTC-Offset für eine genaue Zeitzone darzustellen.
Der conversationCreationDateTime Wert muss größer als der Mindestwert für DateTimeOffset und kleiner als der aktuelle Wert des Kanals createdDateTimesein.
Antwort
Wenn die Anforderung erfolgreich ist, gibt die Methode eine leere HTTP-Antwort zurück.
HTTP/1.1 204 No Content
Beispiel
POST https://graph.microsoft.com/beta/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/channels/19:4b6bed8d24574f6a9e436813cb2617d8@thread.tacv2/startMigration
{
"conversationCreationDateTime":"2024-01-01T00:00:00Z"
}
Vorhandene Chatmigration
Verwenden Sie die API, um den startMigration Migrationsmodus für vorhandene Chats zu aktivieren.
Anforderung (vorhandener Chat im Migrationsmodus)
POST https://graph.microsoft.com/beta/chats/{chat-id}/startMigration
{
"conversationCreationDateTime":"2024-01-01T00:00:00Z"
}
Tipp
Microsoft Graph verwendet DateTimeOffset , um Datum und Uhrzeit mit einem UTC-Offset für eine genaue Zeitzone darzustellen.
Der conversationCreationDateTime muss größer als der Mindestwert für DateTimeOffset und kleiner als der aktuelle Wert des Chats createdDateTimesein.
Antwort
Wenn die Anforderung erfolgreich ist, gibt die Methode eine leere HTTP-Antwort zurück.
HTTP/1.1 204 No Content
Beispiel
POST https://graph.microsoft.com/beta/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/chats/19:4b6bed8d24574f6a9e436813cb2617d8@thread.tacv2/startMigration
{
"conversationCreationDateTime":"2024-01-01T00:00:00Z"
}
Beachten Sie die folgenden wichtigen Punkte:
- Definieren Sie einen Mindestzeitstempel für zu migrierende Nachrichten. Der bereitgestellte Zeitstempel muss älter als der aktuelle
createdDateTimedes Kanals oder Chats sein. Dieser Zeitstempel ersetzt den vorhandenencreatedDateTimedes Kanals. Wenn Sie auf einen vergangenen Zeitstempel aktualisierencreatedDateTime, können Sie ihn nicht erneut in einen zukünftigen Zeitstempel verschieben. - Die
creationDateTime-Eigenschaft ist in einem Anforderungstext optional. Wenn keine Angabe erfolgt, verwendet diestartMigrationAPI das aktuelle Datum und die aktuelle Uhrzeit als Minimalzeitstempel. - Die
startMigrationAPI startet den Nachrichtenmigrationsprozess, indem der Migrationsmodus für einen angegebenen Kanal oder Chat aufInProgressfestgelegt wird.
Schritt 2: Überprüfen der status für die Migration
Rufen Sie Get channel oder Get chat auf, um zu bestätigen, dass der migrationMode Zustand auf InProgressfestgelegt ist. Weitere Informationen finden Sie unter:
Sie können auch überprüfen, ob sich der Zielchat oder Kanal in Teams im migrationMode Zustand befindet, indem Sie ein Banner verwenden, das besagt, dass die Migration für diese Unterhaltung ausgeführt wird. Nachrichten können während dieser Zeit nicht ordnungsgemäß ausgeführt werden.
Dieses Banner bleibt auf der Teams-Benutzeroberfläche sichtbar, bis die Migration für den Zielchat oder Kanal abgeschlossen ist.
Hinweis
Das migrationMode Flag ist derzeit nur in der Betaversion verfügbar.
Schritt 3: Importieren von Nachrichten
Jetzt können Sie Back-in-Time-Nachrichten importieren, indem Sie die createdDateTime Schlüssel und from in den Anforderungstext einfügen.
Hinweis
- Die API unterstützt keine Nachrichten, die mit einem Erstellungsdatum und einer früheren Erstellungszeit als für den
createdDateTimeNachrichtenthread importiert wurden. -
createdDateTimemuss für alle Nachrichten im selben Thread eindeutig sein. -
createdDateTimeunterstützt Zeitstempel mit einer Präzision im Millisekundenbereich. Wenn die eingehende Anforderungsnachricht beispielsweise auf 2020-09-16T05:50:31.0025302Z festgelegt istcreatedDateTime, konvertiert die API sie beim Erfassen der Nachricht in 2020-09-16T05:50:31.002Z.
Anforderung (POST einer Nur-Text-Nachricht)
POST https://graph.microsoft.com/v1.0/teams/team-id/channels/channel-id/messages
{
"createdDateTime":"2019-02-04T19:58:15.511Z",
"from":{
"user":{
"id":"id-value",
"displayName":"John Doe",
"userIdentityType":"aadUser"
}
},
"body":{
"contentType":"html",
"content":"Hello World"
}
}
Antwort
HTTP/1.1 200 OK
{
"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#teams('team-id')/channels('channel-id')/messages/$entity",
"id":"id-value",
"replyToId":null,
"etag":"id-value",
"messageType":"message",
"createdDateTime":"2019-02-04T19:58:15.58Z",
"lastModifiedDateTime":null,
"deleted":false,
"subject":null,
"summary":null,
"importance":"normal",
"locale":"en-us",
"policyViolation":null,
"from":{
"application":null,
"device":null,
"conversation":null,
"user":{
"id":"id-value",
"displayName":"Joh Doe",
"userIdentityType":"aadUser"
}
},
"body":{
"contentType":"html",
"content":"Hello World"
},
"attachments":[
],
"mentions":[
],
"reactions":[
]
}
Fehlermeldung
Sie erhalten die folgende Fehlermeldung, wenn Sie die createdDateTime Eigenschaft auf ein zukünftiges Datum und eine zukünftige Uhrzeit festlegen.
400 Bad Request
Anforderung (POST-Nachricht mit einem Inlinebild)
Hinweis
- In diesem Szenario gibt es keine speziellen Berechtigungsbereiche, da die Anforderung Teil von
chatMessageist. - Die Bereiche für
chatMessagegelten hier.
POST https://graph.microsoft.com/v1.0/teams/team-id/channels/channel-id/messages
{
"body": {
"contentType":"html",
"content": "<div><div>\n<div><span><img height=\"250\" src=\"../hostedContents/1/$value\" width=\"176.2295081967213\" style=\"vertical-align:bottom; width:176px; height:250px\"></span>\n\n</div>\n\n\n</div>\n</div>"
},
"hostedContents":[
{
"@microsoft.graph.temporaryId":"1",
"contentBytes": "iVBORw0KGgoAAAANSUhEUgAAANcAAAExCAYAAADvFzeeAAAXjklEQVR4Ae2d/XNU1RnH+9e0FFrA0RCIyaS8hRA0HV5KbS1gHRgVpjMClY4GHJ3yYm1HCmXaWttaaZUZtIIFKYi8lFAkvOQ9u5vN225IARVBbX9/Os9NbrLZbMjmhCfJPX5+2Lmb3T25y3O+n/M599x7w9f+++UXwoMakIF7n4GvUdR7X1RqSk01A8CFuZm5GGUAuIwKi72wF3ABF+YyygBwGRUWc2Eu4AIuzGWUAeAyKizmwlzABVyYyygDwGVUWMyFuYALuDCXUQaAy6iwmAtzARdwfWXMdeuzT+TGxz3Sfb1LunrapL07IW3pePDQ5/qavqef0c+OdYAELuAac4jGGkLL9rdvfyo9N9ODQAqBGmmrwGlb/R0u3xG4gMspOC5hG882CoRaaCSA8n1ff9doIQMu4PIOrus3u+8ZVNnw6e/Od5AALuDKOyz5hmqiPnfnzi1J9bSbgRWCpvvQfY307wQu4BoxJCOFaDK8rwsQmQsUIQhWW93XSIsewAVckYdLQ24F0Ui/926AARdwRRounZ6Np7GyYdN9DzdFBC7gijRc43GMlQ1U9s/6HXJNjYELuHI<<-----Removed----->>>>",
"contentType": "image/png"
}
]
}
Antwort
HTTP/1.1 200 OK
{
"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#teams('team-id')/channels('channel-id')/messages/$entity",
"id":"id-value",
"replyToId":null,
"etag":"id-value",
"messageType":"message",
"createdDateTime": "2019-02-04T19:58:15.511Z",
"lastModifiedDateTime":null,
"deleted":false,
"subject":null,
"summary":null,
"importance":"normal",
"locale":"en-us",
"policyViolation":null,
"from": {
"application":null,
"device":null,
"conversation":null,
"user": {
"id":"id-value",
"displayName":"John Doe",
"userIdentityType":"aadUser"
}
},
"body": {
"contentType":"html",
"content":"<div><div>\n<div><span><img height=\"250\" src=\"https://graph.microsoft.com/teams/teamId/channels/channelId/messages/id-value/hostedContents/hostedContentId/$value\" width=\"176.2295081967213\" style=\"vertical-align:bottom; width:176px; height:250px\"></span>\n\n</div>\n\n\n</div>\n</div>"
},
"attachments":[],
"mentions":[],
"reactions":[]
}
Schritt 4: Beenden des Migrationsmodus
Verwenden Sie für vorhandene Kanäle oder Chats, die sich bereits im Migrationsmodus befinden, die completeMigration API, um den Migrationsstatus als abgeschlossen zu kennzeichnen. Dadurch wird sichergestellt, dass der Kanal oder Chat dauerhaft verfügbar bleibt, anstatt nach der Migration gelöscht zu werden.
Anforderung (vorhandene Kanalmigration abschließen)
POST https://graph.microsoft.com/beta/teams/{team-id}/channels/{channel-id}/completeMigration
Antwort
HTTP/1.1 204 NoContent
Anforderung (vorhandene Chatmigration abschließen)
POST https://graph.microsoft.com/beta/chats/{chat-id}/completeMigration
Antwort
HTTP/1.1 204 NoContent
Optional: Aktualisieren des Verlaufs von Gruppenchatmitglieden nach der Migration
Wenn Sie die Nachrichtenmigration in einem Gruppenchat abschließen, können Sie optional den Freigabeverlauf der Mitglieder mithilfe der visibleHistoryStartDateTime -Eigenschaft in Microsoft Graph aktualisieren. Diese Eigenschaft legt fest, zu wie früh ein Chatmitglied Nachrichten in einer Unterhaltung anzeigen kann. Wenn importierte Nachrichten älter als der Wert der Eigenschaft sind, werden sie nur angezeigt, wenn Sie die Eigenschaft aktualisieren.
So aktualisieren Sie die visibleHistoryStartDateTime Eigenschaft:
- Entfernen Sie das Mitglied aus dem Chat.
-
Fügen Sie das Mitglied mit einer neuen
visibleHistoryStartDateTimehinzu, die die importierten Nachrichten enthält.
Beispiel
Stellen Sie sich ein Szenario vor, in dem der ursprüngliche Chat um 22:00 Uhr erstellt wurde, um 1:00 Uhr aktualisiert wurde, Nachrichten um 9:00 Uhr importiert wurden und der Freigabeverlauf von Mitglied A um 10:00 Uhr beginnt. So stellen Sie sicher, dass Mitglied A die um 9 Uhr importierten Nachrichten sehen kann:
- Entfernen Sie Mitglied A aus dem Chat.
- Fügen Sie Mitglied A hinzu, wobei die
visibleHistoryStartDateTimeEigenschaft vor 9:00 Uhr festgelegt ist.
Schritt 5: Überprüfen des Abschlusses des Migrationsmodus
Rufen Sie get channel (Kanal abrufen ) oder Get chat (Chat abrufen ) auf, um zu überprüfen, ob als migrationModeCompletedmarkiert ist.
Tipps und zusätzliche Informationen
- Nachdem Sie in einem vorhandenen Kanal oder Chat aufgerufen
completeMigrationhaben, können Sie den Import von Nachrichten mithilfe derstartMigrationAPI fortsetzen.
Drosselung: Nachrichten werden mit fünf RPS pro Kanal importiert.
Wenn Sie die Migrationsergebnisse korrigieren müssen, müssen Sie die Teams löschen, die Schritte zum Erstellen der Teams und des Kanals wiederholen und die Nachrichten erneut migrieren.
Hinweis
Inlinebilder sind der einzige Medientyp, der vom API-Schema der Importnachricht unterstützt wird.
Codebeispiel
| Beispielname | Beschreibung | Node.js | C# | Python |
|---|---|---|---|---|
| Graph-Chatmigration | Diese Beispiel-App kann verwendet werden, um verlaufsbezogene Nachrichten von externen Plattformen zu Teams zu migrieren. | View | View | – |