Cambiar las notificaciones de los recursos de Microsoft Teams
Las notificaciones de cambio de los recursos de Microsoft Teams mediante Microsoft Graph le permiten suscribirse a los cambios de un recurso (crear, actualizar y eliminar). Las notificaciones de cambio proporcionan un modelo de baja latencia, lo que le permite mantener una suscripción. También puede obtener los datos de recursos en las notificaciones y evitar llamar a la API para obtener la carga.
Nota:
El tiempo máximo que puede durar una suscripción es de 60 minutos; sin embargo, las suscripciones se pueden renovar hasta que el autor de la llamada tenga permiso para acceder al recurso.
Tipos de notificación de cambio
Microsoft Teams admite dos tipos de notificaciones de cambio:
Notificación de cambio para hacer seguimiento de todos los cambios relacionados con un recurso en el espacio empresarial: Por ejemplo, puede suscribirse a los cambios en los mensajes de cualquier canal del espacio empresarial y recibir notificaciones cada vez que se cree, actualice o elimine un mensaje en cualquiera de los canales de ese espacio empresarial. Estas notificaciones pueden tener requisitos de licencia y pago, como notificaciones de cambio para mensajes y pertenencia.
Notificación de cambios para realizar un seguimiento de todos los cambios de un recurso específico: Por ejemplo, puede suscribirse a los cambios en los mensajes de un canal determinado y recibir notificaciones cada vez que se crea, actualiza o elimina un mensaje.
Para obtener más información sobre qué recursos admiten los tipos de notificaciones de cambio, consulte Notificaciones de cambio Microsoft Graph.
Recursos admitidos
En la tabla siguiente se enumeran los recursos de Microsoft Teams que admiten notificaciones de cambios y sus rutas de acceso de recursos correspondientes. Aplique la ruta de acceso del recurso para el escenario tal y como se especifica al crear una suscripción. El tipo de carga de la ruta de acceso del recurso es el tipo de la columna "Recurso" o una colección de ese tipo.
Nota:
Las suscripciones a recursos marcadas con un asterisco (*
) solo están disponibles en el punto de /beta
conexión.
Recurso | Rutas de acceso de recursos compatibles | Los datos de los recursos se pueden incluir en las notificaciones |
---|---|---|
Llamada de TeamsRegistro | Todas las grabaciones de una organización: communications/onlineMeetings/getAllRecordings Todas las grabaciones de una reunión específica: communications/onlineMeetings/{onlineMeetingId}/recordings Una grabación de llamadas que está disponible en una reunión organizada por un usuario específico: users/{userId}/onlineMeetings/getAllRecordings Grabación de llamadas que está disponible en una reunión en la que se instala una aplicación de Teams determinada: appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllRecordings * |
Yes |
Llamada de TeamsTranscript | Todas las transcripciones de una organización: communications/onlineMeetings/getAllTranscripts Todas las transcripciones de una reunión específica: communications/onlineMeetings/{onlineMeetingId}/transcripts Transcripción de llamadas que está disponible en una reunión organizada por un usuario específico: users/{userId}/onlineMeetings/getAllTranscripts Transcripción de llamadas que está disponible en una reunión en la que se instala una aplicación de Teams determinada: appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllTrancripts * |
Sí |
Canal de Teams | Cambios en los canales de todos los equipos:/teams/getAllChannels Cambios en el canal en un equipo específico: /teams/{id}/channels |
Sí |
Chat de Teams | Cambios en cualquier chat del inquilino:/chats Cambios en un chat específico: /chats/{id} Cambios en cualquier chat del inquilino donde esté instalada una aplicación de Teams determinada: /appCatalogs/teamsApps/{id}/installedToChats |
Sí |
chatmessage de Teams | Cambios en mensajes de chat de todos los canales de todos los equipos:/teams/getAllMessages Cambios en mensajes de chat en un canal específico: /teams/{id}/channels/{id}/messages Cambios en mensajes de chat de todos los chats: /chats/getAllMessages Cambios en mensajes de chat en un chat específico: /chats/{id}/messages Cambios en los mensajes de chat en todos los chats de los que forma parte un usuario determinado: /users/{id}/chats/getAllMessages Cambios en los mensajes de chat en todos los chats del inquilino donde está instalada una aplicación de Teams determinada: /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages |
Sí |
conversationMember de Teams | Cambios en la pertenencia a un equipo específico:/teams/{id}/members Cambios en la pertenencia a un chat específico: /chats/{id}/members Cambios en la pertenencia en todos los chats: /chats/getAllMembers Cambios en la pertenencia a todos los canales de un equipo específico: teams/{id}/channels/getAllMembers Cambios en la pertenencia a todos los chats del inquilino donde está instalada una aplicación de Teams determinada: /appCatalogs/teamsApps/{id}/installedToChats/getAllMembers Cambios en la pertenencia a todos los canales del inquilino: teams/getAllChannels/getAllMembers |
Sí |
Equipo de Teams | Cambios en cualquier equipo del inquilino:/teams Cambios en un equipo específico: /teams/{id} |
Sí |
Teams teamsAppInstallation | Cambia cuando se instala, actualiza o elimina una aplicación de Teams determinada:/appCatalogs/teamsApps/{teams-app-id}/installations |
Sí |
Cargas de notificaciones
Puede obtener la notificación con o sin datos de recursos, en función de su suscripción. Suscribirse con datos de recursos le permite obtener la carga del mensaje y la notificación, lo que elimina la necesidad de volver a llamar y obtener el contenido.
Notificaciones con datos de recursos
Para las notificaciones con datos de recursos, la carga es similar a la siguiente. Esta carga es para una notificación correspondiente al recurso de mensaje de chat. La notificación real incluye las propiedades resource y resourceData, que representan el recurso que ha desencadenado la notificación.
{
"value": [{
"subscriptionId": "10493aa0-4d29-4df5-bc0c-ef742cc6cd7f",
"changeType": "created",
"clientState": "<<--SpecifiedClientState-->>",
"subscriptionExpirationDateTime": "2021-02-02T10:30:34.9097561-08:00",
"resource": "chats('19:8ea0e38b-efb3-4757-924a-5f94061cf8c2_97f62344-57dc-409c-88ad-c4af14158ff5@unq.gbl.spaces')/messages('1612289765949')",
"resourceData": {
"id": "1612289765949",
"@odata.type": "#Microsoft.Graph.chatMessage",
"@odata.id": "chats('19:8ea0e38b-efb3-4757-924a-5f94061cf8c2_97f62344-57dc-409c-88ad-c4af14158ff5@unq.gbl.spaces')/messages('1612289765949')"
},
"encryptedContent": {
"data": "<<--EncryptedContent-->",
"dataKey": "<<--EnryptedDataKeyUsedForEncryptingContent-->>",
"encryptionCertificateId": "<<--IdOfTheCertificateUsedForEncryptingDataKey-->>",
"encryptionCertificateThumbprint": "<<--ThumbprintOfTheCertificateUsedForEncryptingDataKey-->>"
},
"tenantId": "<<--TenantForWhichNotificationWasSent-->>"
}],
"validationTokens": ["<<--ValidationTokens-->>"]
}
Para obtener más información sobre cómo validar tokens y descifrar la carga, consulte Configuración de notificaciones de cambios que incluyen datos de recursos.
La carga de notificación descifrada es similar a la siguiente. La carga descifrada del ejemplo anterior se ajusta al esquema chatMessage. La carga es similar a la devuelta por las operaciones GET.
{
"id": "1612289992105",
"replyToId": null,
"etag": "1612289992105",
"messageType": "message",
"createdDateTime": "2021-02-02T18:19:52Z",
"lastModifiedDateTime": "2021-02-02T18:19:52.105Z",
"lastEditedDateTime": null,
"deletedDateTime": null,
"subject": null,
"summary": null,
"chatId": "19:8ea0e38b-efb3-4757-924a-5f94061cf8c2_97f62344-57dc-409c-88ad-c4af14158ff5@unq.gbl.spaces",
"importance": "normal",
"locale": "en-us",
"webUrl": null,
"from": {
"application": null,
"device": null,
"user": {
"id": "8ea0e38b-efb3-4757-924a-5f94061cf8c2",
"displayName": "Ramjot Singh",
"userIdentityType": "aadUser"
},
"conversation": null
},
"body": {
"contentType": "text",
"content": "test"
},
"channelIdentity": null,
"attachments": [],
"mentions": [],
"policyViolation": null,
"reactions": [],
"replies": [],
"hostedContents": []
}
Notificaciones con datos de recursos
Las notificaciones sin datos de recursos le proporcionarán suficiente información para realizar llamadas GET para obtener el recurso. Las suscripciones para notificaciones sin datos de recursos no requieren un certificado de cifrado (porque los datos de recursos reales no se envían).
La carga es similar a la siguiente. Esta carga es para un mensaje enviado en un chat.
{
"subscriptionId": "9f9d1ed0-c9cc-42e7-8d80-a7fc4b0cda3c",
"changeType": "created",
"tenantId": "<<--TenantForWhichNotificationWasSent-->>",
"clientState": "<<--SpecifiedClientState-->>",
"subscriptionExpirationDateTime": "2021-02-02T11:26:41.0537895-08:00",
"resource": "teams('fbe2bf47-16c8-47cf-b4a5-4b9b187c508b')/channels('19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2')/messages('1612293113399')",
"resourceData": {
"id": "1612293113399",
"@odata.type": "#Microsoft.Graph.chatMessage",
"@odata.id": "teams('fbe2bf47-16c8-47cf-b4a5-4b9b187c508b')/channels('19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2')/messages('1612293113399')"
}
}
En el ejemplo anterior se muestra una notificación correspondiente a un recurso de mensaje de chat. La notificación real incluye las propiedades resource y resourceData, que representan el recurso que ha desencadenado la notificación. Las propiedades recurso y @odata.id pueden usarse para realizar llamadas a Microsoft Graph y obtener la carga del recurso.
Nota:
Las llamadas GET siempre devuelven el estado actual del recurso. Si el recurso se cambia entre el momento en que se envía la notificación y cuando se recupera el recurso, la operación devolverá el recurso actualizado.
Contenido relacionado
- Notificaciones de cambios en Microsoft Graph
- Obtener notificaciones para equipos y canales con Microsoft Graph
- Reciba notificaciones de cambios en los equipos y canales mediante Microsoft Graph
- Obtener notificaciones de cambio de mensajes en canales y chats de Teams con Microsoft Graph
- Obtener notificaciones de cambios para los chats mediante Microsoft Graph
- Obtener notificaciones de cambios para la pertenencia a chats mediante Microsoft Graph
- Introducción a la API de Microsoft Teams
- Obtención de notificaciones de cambios para transcripciones y grabaciones de reuniones mediante Microsoft Graph