Obtención de notificaciones de cambios para las actualizaciones de presencia en Microsoft Teams
Las notificaciones de cambio de Microsoft Graph le permiten suscribirse a los cambios en la información de presencia del usuario en Microsoft Teams. Las notificaciones de cambio proporcionan una alternativa al sondeo de presencia mediante las API GET presence y POST getPresencesByUserId .
Use webhooks para suscribirse a la información de presencia de los usuarios y obtener notificaciones cuando se produzcan cambios. Para obtener información general sobre webhooks, consulte Notificaciones de cambios de Microsoft Graph API.
Permisos
Tipo de permiso | Permisos (de menos a más privilegiados) | Versiones compatibles |
---|---|---|
Delegado (cuenta profesional o educativa) | Presence.Read.All. | V1, beta. |
Delegado (cuenta personal de Microsoft) | No admitida. | No admitida. |
Aplicación | No admitida. | No admitida. |
Recursos admitidos para la presencia
Las suscripciones tienen un tiempo de expiración máximo de una hora. Una suscripción se puede renovar a través de update subscription API antes de que expire, o se puede crear una nueva suscripción para el mismo recurso después de la expiración. Las suscripciones de presencia admiten notificaciones con datos de recursos, lo que permite entregar información más detallada junto con las notificaciones de cambio. Para obtener más información, consulte Configuración de notificaciones de cambios con datos de recursos.
En la tabla siguiente se enumeran los tipos de cambios de presencia a los que puede suscribirse. Para obtener más información, consulte Creación de una suscripción.
Tipo de suscripción de presencia | Dirección URL del recurso | Tipos de cambio admitidos |
---|---|---|
Cambios de presencia de un solo usuario | communications/presences/{id} |
Actualizado |
Cambios de presencia masiva de usuarios (650 identificadores de usuario como máximo) | communications/presences?$filter=id in ('{id}', '{id}', ...) |
Actualizado |
Suscribirse a los cambios de presencia
Para suscribirse a los cambios de presencia, puede establecer el recurso de la carga de communications/presences/{id}
la suscripción en donde el campo {id} debe reemplazarse por el GUID de identificador de usuario de la presencia del usuario. Esta suscripción proporciona notificaciones de cambio cuando cambia la presencia del usuario.
Ejemplo: Cargas de suscripción de presencia de usuario único
{
"changeType": "updated",
"notificationUrl": "https://webhook.contoso.com/api",
"lifecycleNotificationUrl": "https://webhook.contoso.com/api",
"resource": "communications/presences/{id}",
"expirationDateTime": "2023-09-14T10:00:00.0000000Z",
"includeResourceData": true,
"encryptionCertificate": "{encryption certificate}",
"encryptionCertificateId": "{certificate id}",
"clientState": "{secret client state}"
}
Suscribirse a la presencia de varios usuarios
Las suscripciones masivas para la presencia del usuario se pueden crear estableciendo el valor del recurso de suscripción en /communications/presences?$filter=id in ('{id}', '{id}',...)
, donde {id} representa un GUID de identificadores de usuario de los usuarios. Un máximo de 650 usuarios se pueden suscribir en una sola suscripción. Los cambios de presencia de los identificadores de usuario generan una notificación.
Ejemplo: Varias cargas de suscripción de presencia de usuario
{
"changeType": "updated",
"notificationUrl": "https://webhook.contoso.com/api",
"lifecycleNotificationUrl": "https://webhook.contoso.com/api",
"resource": "/communications/presences?$filter=id in ('{id}', '{id}',...)",
"expirationDateTime": "2023-09-14T10:00:00.0000000Z",
"includeResourceData": true,
"encryptionCertificate": "{encryption certificate}",
"encryptionCertificateId": "{certificate id}",
"clientState": "{secret client state}"
}
Recepción de notificaciones de eventos de presencia
Las notificaciones de cambio de eventos de presencia se desencadenan cuando se realizan cambios en la disponibilidad y la actividad de un usuario.
Ejemplo: Notificaciones de presencia básicas
{
"value": [{
"subscriptionId": "{Subscription id}",
"clientState": "{secret client state}",
"changeType": "updated",
"tenantId": "{Organization/Tenant id}",
"resource": "communications/presences/{id}",
"subscriptionExpirationDateTime": "2023-09-14T10:00:00.0000000Z",
"resourceData": {
"@odata.id": "users/{User Id}/presence",
"@odata.type": "#microsoft.graph.presence",
"id": "{User Id}"
},
"organizationId": "{Organization/Tenant id}",
}]
}
Ejemplo: Notificaciones de presencia con datos de recursos
Las notificaciones de presencia con datos de recursos tienen las siguientes propiedades adicionales cifradas en la carga:
- Disponibilidad o información de presencia base (disponible, ausente, ocupado)
- Actividad o información complementaria a la disponibilidad (en una reunión, en llamada)
[Nota]: La disponibilidad y la actividad pueden ser el mismo valor.
Para obtener más información sobre las posibles combinaciones de disponibilidad y actividad, consulte Propiedades de presencia.
{
"value": [{
"subscriptionId": "{Subscription id}",
"clientState": "{secret client state}",
"changeType": "updated",
"tenantId": "{Organization/Tenant id}",
"resource": "communications/presences/{id}",
"subscriptionExpirationDateTime": "2023-09-14T10:00:00.0000000Z",
"resourceData": {
"@odata.id": "users/{User Id}/presence",
"@odata.type": "#microsoft.graph.presence",
"id": "{User Id}"
},
"organizationId": "{Organization/Tenant id}",
"encryptedContent": {
"data": "{Encrypted content}",
"dataSignature": "{Encrypted data signature}",
"dataKey": "{Encrypted data key for encrypting content}",
"encryptionCertificateId": "{User specified id of encryption certificate}",
"encryptionCertificateThumbprint": "{Encrpytion certification thumbprint}"
}
}],
"validationTokens": ["{Validation Tokens}"]
}
Ejemplo: Notificaciones descifradas con datos de recursos
{
"@odata.id": "users/{User Id}/presence",
"@odata.type": "#microsoft.graph.presence",
"id": "{User Id}",
"availability": "{Availability}",
"activity": "{Activity}"
}
Contenido relacionado
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de