Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Con Microsoft Graph, puede migrar el historial de mensajes y los datos existentes de los usuarios de un sistema externo a Teams. Los usuarios pueden continuar sus comunicaciones de forma fluida y continuar sin interrupciones habilitando la recreación de una jerarquía de mensajería de plataforma de terceros dentro de Teams.
Permissions
| Nombre de ámbito | Nombre para mostrar | Descripción | Tipo | Se requiere el consentimiento del administrador | Entidades o API cubiertas |
|---|---|---|---|---|---|
| Teamwork.Migrate.All | Administrar la migración a Microsoft Teams | Crear y administrar recursos para la migración a Teams. | Aplicación solamente | Sí | POST /team |
Nota:
No se admite la autenticación delegada.
Tipos de canal y chat admitidos
Teams admite la migración de mensajes externos a los siguientes tipos de canal y chat:
Nuevo equipo y canal estándar: cree un nuevo equipo y sus canales estándar en modo de migración para importar contenido. Este enfoque le permite importar la estructura exacta del sistema externo en el nuevo canal. Para habilitar
migrationModeun nuevo equipo y canal estándar, consulte Creación de un equipo y un canal estándar en modo de migración.Canal o chat existente: use cualquier canal o chat que ya exista en Teams, independientemente de cuándo lo haya creado. Este enfoque le permite agregar contexto existente a los canales que ya están activos en Teams y mantiene la continuidad de las conversaciones en curso. Para habilitar el modo de migración en un canal o chat existente, consulte Migración de canales existentes.
Nota:
- Solo se admiten canales estándar al crear un canal en modo de migración desde cero.
- El contenido federado no se puede importar. Todo el contenido importado debe proceder del inquilino autenticado y solo una aplicación puede administrar un subproceso a la vez. Otra aplicación solo puede importar contenido después de que la primera aplicación complete la migración.
migrationMode es un estado especial que garantiza la integridad de los datos al impedir las siguientes operaciones durante la migración de datos.
- Para nuevos equipos y canales estándar:
- Restringe la recepción de nuevos mensajes
- Impide agregar o quitar miembros
- Para todos los canales y tipos de chat admitidos:
- Permite importar mensajes históricos con marcas de tiempo personalizadas
- Mantiene la estructura y la jerarquía de la conversación originales.
Ámbito de contenido para la importación
En la tabla siguiente se proporciona el ámbito de contenido de los canales y chats existentes.
| Dentro del ámbito | Fuera del ámbito |
|---|---|
| Equipo (general) | Anuncios |
| Hora de creación del mensaje original | Vídeos |
| Imágenes alineadas como parte del mensaje | Fragmentos de código |
| Vínculos a archivos existentes en Microsoft 365 (Microsoft 365) SharePoint Online (SPO) o OneDrive (OD) | Adhesivos |
| Mensajes con texto enriquecido | Publicaciones cruzadas entre canales |
| Cadena de respuesta de mensajes | Ofertas |
| Procesamiento de alto rendimiento | |
| Mensajes de chat de grupo y 1:1 | |
| mensajes de canal Standard, privados y compartidos | |
| Hasta 250 reacciones | |
| @mentions y emojis |
Requisitos previos
Análisis y preparación de datos de mensajes
- Revise los datos de terceros para decidir qué migrar.
- Extraiga los datos seleccionados del sistema de chat de terceros.
- Asigne la estructura de chat de terceros a la estructura de Teams.
- Convierta los datos de importación en el formato necesario para la migración.
Configurar el espacio empresarial de Microsoft 365.
- Asegúrese de que existe un inquilino de Microsoft 365 para los datos de importación. Para obtener más información sobre cómo configurar un inquilino de Microsoft 365 para Teams, consulte Preparación del inquilino de Microsoft 365.
- Asegúrese de que los miembros del equipo están en Microsoft Entra ID. Para obtener más información, vea Agregar un nuevo usuario a Microsoft Entra ID.
Importación de mensajes históricos en Teams
Puede importar mensajes históricos sin problemas en canales o chats existentes y recién creados realizando los pasos siguientes:
- Inicio de la migración
- Comprobación del estado de la migración
- Importar mensajes
- Completar el modo de migración
- Comprobación de la finalización del modo de migración
Paso 1: Iniciar la migración
Para empezar a migrar el historial de mensajes de un usuario desde cualquier plataforma de terceros a Teams, puede crear un nuevo equipo y canal estándar o usar un canal o chat existente. En función del escenario, elija una de las siguientes opciones:
- Creación de un equipo y un canal estándar en modo de migración
- Inicio de la migración en canales y chats existentes
Creación de un equipo y un canal estándar en modo de migración
En este escenario, cree un nuevo equipo y un canal estándar en migrationMode para continuar con la importación de mensajes existentes.
migrationMode solo se admite para canales estándar.
Crear un nuevo equipo
-
Cree un nuevo equipo con una marca de tiempo back-in-time mediante la
createdDateTimepropiedad . - Coloque el nuevo equipo en estableciendo
teamCreationModemigrationenmigrationMode.
Nota:
El createdDateTime campo solo se rellena para los equipos o canales migrados. Si actualiza createdDateTime a una marca de tiempo anterior, no podrá volver a moverla a una marca de tiempo futura.
migrationMode garantiza que se conservan las marcas de tiempo del mensaje original y evita que se envíen nuevos mensajes cuando la migración está en curso.
Solicitud (crear un equipo en modo de migración)
POST https://graph.microsoft.com/v1.0/teams
Content-Type:application/json
{
"@microsoft.graph.teamCreationMode":"migration",
"template@odata.bind":"https://graph.microsoft.com/v1.0/teamsTemplates('standard')",
"displayName":"My Sample Team",
"description":"My Sample Team’s Description",
"createdDateTime":"2020-03-14T11:22:17.043Z"
}
Respuesta
HTTP/1.1 202 Accepted
Location: /teams/{team-id}/operations/{operation-id}
Content-Location: /teams/{team-id}
Mensaje de error
400 Bad Request
Puede recibir el mensaje de error en los escenarios siguientes:
- Si
createdDateTimese establece para el futuro. - Si
createdDateTimese especifica correctamente, peroteamCreationModeatributo de instancia falta o se establece en un valor no válido.
Creación de un nuevo canal
-
Cree un nuevo canal con una marca de tiempo back-in-time mediante la
createdDateTimepropiedad del recurso de canal. - Coloque el nuevo canal en modo de migración estableciendo
channelCreationModeenmigration.
Solicitud (crear un canal en modo de migración)
POST https://graph.microsoft.com/v1.0/teams/{team-id}/channels
Content-Type: application/json
{
"@microsoft.graph.channelCreationMode":"migration",
"displayName":"Architecture Discussion",
"description":"This channel is where we debate all future architecture plans",
"membershipType":"standard",
"createdDateTime":"2020-03-14T11:22:17.047Z"
}
Respuesta
HTTP/1.1 202 Accepted
{
"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#teams('team-id')/channels/$entity",
"id":"id-value",
"createdDateTime":null,
"displayName":"Architecture Discussion",
"description":"This channel is where we debate all future architecture plans",
"isFavoriteByDefault":null,
"email":null,
"webUrl":null,
"membershipType":null,
"moderationSettings":null
}
Mensaje de error
400 Bad Request
Puede recibir el mensaje de error en los escenarios siguientes:
- Si
createdDateTimese establece para el futuro. - Si
createdDateTimese especifica correctamente pero atributo de instanciachannelCreationModefalta o se establece en un valor no válido.
Después de crear un nuevo equipo y un canal estándar, complete la migración con los pasos siguientes:
- Comprobación del estado de la migración
- Importar mensajes
- Completar el modo de migración
- Comprobación de la finalización del modo de migración
Inicio de la migración en canales y chats existentes
En canales o chats existentes, use la API para habilitar el startMigrationmodo de migración de canales o para habilitar el modostartMigration de migración de chat establece el estado de migración en InProgress e inicia el proceso de importación de mensajes. Para más información, vea:
Migración de canales existente
Para habilitar el modo de migración en canales existentes, use la startMigration API.
Solicitud (canal existente en modo de migración)
POST https://graph.microsoft.com/beta/teams/{team-id}/channels/{channel-id}/startMigration
{
"conversationCreationDateTime":"2024-01-01T00:00:00Z"
}
Sugerencia
Microsoft Graph usa DateTimeOffset para representar la fecha y la hora con un desplazamiento UTC para una zona horaria precisa.
El conversationCreationDateTime valor debe ser mayor que el valor mínimo para DateTimeOffset y menor que el valor actual de .createdDateTime
Respuesta
Si la solicitud se realiza correctamente, el método devuelve una respuesta HTTP vacía.
HTTP/1.1 204 No Content
Ejemplo
POST https://graph.microsoft.com/beta/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/channels/19:4b6bed8d24574f6a9e436813cb2617d8@thread.tacv2/startMigration
{
"conversationCreationDateTime":"2024-01-01T00:00:00Z"
}
Migración de chat existente
Para habilitar el modo de migración en chats existentes, use la startMigration API.
Solicitud (chat existente en modo de migración)
POST https://graph.microsoft.com/beta/chats/{chat-id}/startMigration
{
"conversationCreationDateTime":"2024-01-01T00:00:00Z"
}
Sugerencia
Microsoft Graph usa DateTimeOffset para representar la fecha y la hora con un desplazamiento UTC para una zona horaria precisa.
conversationCreationDateTime debe ser mayor que el valor mínimo para DateTimeOffset y menor que el valor actual del chatcreatedDateTime.
Respuesta
Si la solicitud se realiza correctamente, el método devuelve una respuesta HTTP vacía.
HTTP/1.1 204 No Content
Ejemplo
POST https://graph.microsoft.com/beta/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/chats/19:4b6bed8d24574f6a9e436813cb2617d8@thread.tacv2/startMigration
{
"conversationCreationDateTime":"2024-01-01T00:00:00Z"
}
Tenga en cuenta los siguientes puntos importantes:
- Defina una marca de tiempo mínima para los mensajes que se van a migrar. La marca de tiempo proporcionada debe ser anterior a la actual
createdDateTimedel canal o del chat. Esta marca de tiempo reemplaza al existentecreatedDateTimedel canal. Si actualizacreatedDateTimea una marca de tiempo anterior, no podrá volver a moverla a una marca de tiempo futura. - La
creationDateTimepropiedad es opcional en un cuerpo de solicitud. Si se omite, lastartMigrationAPI usa la fecha y hora actuales como marca de tiempo mínima. - La
startMigrationAPI inicia el proceso de migración de mensajes estableciendo el modo de migración enInProgresspara un canal o chat especificado.
Paso 2: Comprobación del estado de la migración
Llame a Get channel o Get chat para confirmar que el migrationMode estado está establecido en InProgress. Para más información, vea:
Nota:
La migrationMode marca solo está disponible actualmente en la versión beta.
Paso 3: Importar mensajes
Ahora puede importar mensajes back-in-time mediante la inclusión de las createdDateTime claves y from en el cuerpo de la solicitud.
Nota:
- La API no admite los mensajes importados con una fecha y hora de creación anteriores a para
createdDateTimeel subproceso de mensaje. -
createdDateTimedebe ser único en todos los mensajes del mismo subproceso. -
createdDateTimeadmite marcas de tiempo con precisión de milisegundos. Por ejemplo, si el mensaje de solicitud entrante se hacreatedDateTimeestablecido en 2020-09-16T05:50:31.0025302Z, la API lo convierte en 2020-09-16T05:50:31.002Z al ingerir el mensaje.
Solicitud (mensaje POST que es de solo texto)
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"
}
}
Respuesta
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":[
]
}
Mensaje de error
Recibirá el siguiente mensaje de error si establece la createdDateTime propiedad en una fecha y hora futuras.
400 Bad Request
Solicitud (mensaje POST con una imagen insertada)
Nota:
- No hay ningún ámbito de permiso especial en este escenario, ya que la solicitud forma parte de
chatMessage. - Los ámbitos de
chatMessagese aplican aquí.
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"
}
]
}
Respuesta
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":[]
}
Paso 4: Completar el modo de migración
Use la completeMigration API para finalizar el proceso de migración de los canales y chats nuevos y existentes. Para más información, vea:
- Completar la migración de nuevos equipos y canales
- Completar la migración del canal o chat existente
Completar la migración de nuevos equipos y canales
Use la completeMigration API para completar la migración para el nuevo equipo y canal Esta acción abre el equipo y canalizará los recursos para su uso general por parte de los miembros del equipo. La acción se enlaza a la instancia team. Antes de completar la migración de mensajes de equipo, debe completar la migración en todos los canales.
Solicitud (modo de migración de canal final)
POST https://graph.microsoft.com/beta/teams/team-id/channels/channel-id/completeMigration
Respuesta
HTTP/1.1 204 NoContent
Solicitud (finalizar el modo de migración del equipo)
POST https://graph.microsoft.com/beta/teams/team-id/completeMigration
Respuesta
HTTP/1.1 204 NoContent
Agregar miembros del equipo
Después de completar la migración de mensajes externos, puede agregar un único miembro a un equipo mediante la interfaz de usuario de Teams.
También puede usar Microsoft Graph para agregar un solo miembro o agregar miembros de forma masiva.
Solicitud (agregar miembro)
POST https://graph.microsoft.com/beta/teams/{team-id}/members
Content-type:application/json
Content-length:30
{
"@odata.type":"#microsoft.graph.aadUserConversationMember",
"roles":[],
"user@odata.bind":"https://graph.microsoft.com/beta/users/{user-id}"
}
Respuesta
HTTP/1.1 204 No Content
Una vez completado el nuevo equipo y la migración del canal, compruebe la finalización del modo de migración.
Nota:
La migrationMode marca solo está disponible actualmente en la versión beta, no en la versión V1.
Completar la migración del canal o chat existente
Para los canales o chats existentes que ya están en modo de migración, use la completeMigration API para marcar el estado de migración como completado. Este proceso garantiza que el canal o el chat permanezcan permanentemente disponibles en lugar de quitarse después de la migración.
Solicitud (completar la migración del canal existente)
POST https://graph.microsoft.com/beta/teams/{team-id}/channels/{channel-id}/completeMigration
Respuesta
HTTP/1.1 204 NoContent
Solicitud (completar la migración de chat existente)
POST https://graph.microsoft.com/beta/chats/{chat-id}/completeMigration
Respuesta
HTTP/1.1 204 NoContent
Opcional: Actualizar el historial de miembros del chat de grupo después de la migración
Cuando complete la migración de mensajes en un chat de grupo, puede actualizar opcionalmente el historial de recursos compartidos de los miembros mediante la visibleHistoryStartDateTime propiedad de Microsoft Graph. Esta propiedad establece la primera vez que un miembro del chat puede ver mensajes en una conversación. Si los mensajes importados son anteriores al valor de la propiedad, no aparecen a menos que actualice la propiedad.
Para actualizar la visibleHistoryStartDateTime propiedad:
- Quite el miembro del chat.
-
Vuelva a agregar el miembro con un nuevo
visibleHistoryStartDateTimeque incluya los mensajes importados.
Ejemplo
Considere un escenario en el que el chat original se creó a las 10 p. m., se actualizó a la 1 a. m., los mensajes se importaron a las 9 a. m. y el historial de recursos compartidos del miembro A comienza a las 10 a. m. Para asegurarse de que el miembro A pueda ver los mensajes importados a las 9:00:
- Quite el miembro A del chat.
- Agregue el miembro A con la propiedad establecida antes de las
visibleHistoryStartDateTime9 a. m.
Paso 5: Comprobación de la finalización del modo de migración
Llame a Get channel (Obtener canal ) o Get chat (Obtener chat ) para comprobar que está migrationMode marcado como Completed.
Sugerencias e información adicional
Después de llamar a
completeMigrationen un canal o chat existente, puede seguir importando mensajes mediante lastartMigrationAPI.Solo puede agregar miembros del equipo a los nuevos Teams después de que la
completeMigrationsolicitud devuelva una respuesta correcta. Esta regla solo se aplica al equipo recién creado y al canal estándar.Limitación: los mensajes se importan a cinco RPS por canal.
Si necesita corregir los resultados de la migración, debe eliminar Teams, repetir los pasos para crear teams y canal y volver a migrar los mensajes.
Nota:
Las imágenes insertadas son el único tipo de medio compatible con el esquema de la API de mensaje de importación.
Ejemplo de código
| Ejemplo de nombre | Descripción | Node.js | C# | Python |
|---|---|---|---|---|
| Migración de chat de Graph | Esta aplicación de ejemplo se puede usar para migrar mensajes históricos de plataformas externas a Teams. | View | View | ND |