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.
Las notificaciones de cambio de Microsoft Graph admiten suscripciones a eventos virtuales. Las notificaciones de cambio proporcionan un modelo de baja latencia al permitirle mantener un webhook a eventos virtuales de Microsoft Teams. Las suscripciones a eventos virtuales tienen un período máximo de un día. Para ampliar la duración de una suscripción, la suscripción debe renovarse antes del período de expiración. Como alternativa, un usuario podría decidir crear una nueva suscripción para el recurso después de la expiración de una suscripción existente. Para obtener más información, consulte Uso de microsoft Graph API para obtener notificaciones de cambios.
Permisos
| Tipo de permiso | Permisos (de menos a más privilegiados) | Versiones compatibles |
|---|---|---|
| Delegado (cuenta profesional o educativa) | VirtualEvent.Read, VirtualEvent.ReadWrite | v1.0, Beta |
| Delegado (cuenta personal de Microsoft) | No admitida. | No admitida. |
| Aplicación | VirtualEvent.Read.All | v1.0, Beta |
Eventos virtuales suscritos
En la tabla siguiente se proporciona un resumen de los tipos de eventos virtuales suscritos, las direcciones URL de recursos usadas en la carga de la suscripción y los tipos de cambio admitidos para la suscripción de notificación.
| Tipos de eventos virtuales | Dirección URL del recurso | Tipos de cambio admitidos | Tipos de permisos admitidos |
|---|---|---|---|
| Todos los eventos (nivel de inquilino) | solutions/virtualEvents/events |
creado | Aplicación |
| Todos los eventos (identificadores de organizador o coorganizador a nivel de inquilino) | solutions/virtualEvents/events/getEventsFromOrganizers(organizerIds=['id1', 'id2']) |
creado | Aplicación |
| Los eventos de un seminario web específico | solutions/virtualEvents/webinars/{webinarId} |
Actualizado | Aplicación, delegada |
| Eventos listos para informes de asistencia para un seminario web | solutions/virtualEvents/webinars/{webinarId}/getAttendanceReports |
creado | Aplicación, delegada |
| Los eventos de sesión de un **seminario web ** | solutions/virtualEvents/webinars/{webinarId}/sessions |
creado, actualizado | Aplicación, delegada |
| Los eventos de registro de un seminario web | solutions/virtualEvents/webinars/{webinarId}/registrations |
creado, actualizado | Aplicación, delegada |
| Los eventos de un ayuntamiento específico | solutions/virtualEvents/townhalls/{townhallId} |
Actualizado | Aplicación, delegada |
| Eventos listos para el informe de asistencia para un ayuntamiento | solutions/virtualEvents/townhalls/{townhallId}/getAttendanceReports |
creado | Aplicación, delegada |
| Los eventos de sesión de un ayuntamiento específico | solutions/virtualEvents/townhalls/{townhallId}/sessions |
creado, actualizado | Aplicación, delegada |
| Publicación lista para vídeo a petición | solutions/virtualEvents/{eventType}/{eventId}/getVideoOnDemandPublication |
Actualizado | Aplicación, delegada |
Suscribirse a todos los eventos creados en un inquilino
Puede especificar suscripciones para todos los eventos de una aplicación y un inquilino únicos en la carga de la suscripción mediante la sintaxis siguiente: solutions/virtualEvents/events. La suscripción designa la dirección URL de notificación para recibir todas las notificaciones creadas por eventos en un inquilino para eventos virtuales. Solo se admiten las notificaciones creadas por eventos para esta suscripción. Un inquilino solo puede tener un tipo de suscripción por aplicación. Los permisos de eventos virtuales delegados por el usuario están restringidos a la creación de este tipo de suscripción.
POST https://graph.microsoft.com/v1.0/subscriptions
Content-Type: application/json
{
"changeType": "created",
"notificationUrl": "https://webhook.contoso.com/api",
"lifecycleNotificationUrl": "https://webhook.contoso.com/api",
"resource": "solutions/virtualEvents/events",
"expirationDateTime": "2021-02-01T11:00:00.0000000Z",
"clientState": "secretClientState"
}
Suscribirse a todos los eventos creados en un inquilino con los organizadores pertinentes
Puede suscribirse a todos los eventos que incluyan cualquier miembro de un conjunto de organizadores o coorganizador mediante el siguiente recurso: solutions/virtualEvents/events/getEventsFromOrganizers(organizerIds=['id1', 'id2']). Estas suscripciones reciben las notificaciones creadas para todos los eventos virtuales de un conjunto de identificadores de organizador o coorganizador. Esta suscripción se considera una suscripción a todos los eventos creados en un inquilino. Los permisos de eventos virtuales delegados por el usuario están restringidos a la creación de este tipo de suscripción.
POST https://graph.microsoft.com/v1.0/subscriptions
Content-Type: application/json
{
"changeType": "created",
"notificationUrl": "https://webhook.contoso.com/api",
"lifecycleNotificationUrl": "https://webhook.contoso.com/api",
"resource": "solutions/virtualEvents/events/getEventsFromOrganizers(organizerIds=['id1', 'id2'])",
"expirationDateTime": "2021-02-01T11:00:00.0000000Z",
"clientState": "secretClientState"
}
Suscripción a eventos actualizados de un seminario web específico
Para recibir notificaciones actualizadas de un seminario web determinado, debe crear una suscripción para ese seminario web único mediante el siguiente recurso: solutions/virtualEvents/webinars/{webinarId}.
Una aplicación solo puede tener una suscripción por seminario web dentro de un inquilino. Un token delegado por el usuario le permite configurar una suscripción para recibir notificaciones de actualización del seminario web dentro de un inquilino. Esta suscripción solo está disponible para los usuarios que organizaron o organizaron seminarios web en el mismo inquilino que el host de eventos.
POST https://graph.microsoft.com/v1.0/subscriptions
Content-Type: application/json
{
"changeType": "updated",
"notificationUrl": "https://webhook.contoso.com/api",
"lifecycleNotificationUrl": "https://webhook.contoso.com/api",
"resource": "solutions/virtualEvents/webinars/{webinarId}",
"expirationDateTime": "2021-02-01T11:00:00.0000000Z",
"clientState": "secretClientState"
}
Suscribirse a eventos de informes de asistencia para todas las sesiones de un seminario web
Para recibir notificaciones cuando los informes de asistencia estén disponibles para las sesiones de un seminario web de eventos virtuales, se debe crear una suscripción con el siguiente recurso: solutions/virtualEvents/webinars/{webinarId}/getAttendanceReports.
Una aplicación solo puede tener una suscripción para los informes de asistencia de un seminario web dentro de un inquilino. Un token delegado por el usuario le permite configurar una suscripción para recibir notificaciones de actualización del seminario web dentro de un inquilino. Esta suscripción solo está disponible para los usuarios que organizaron o organizaron seminarios web en el mismo inquilino que el host de eventos.
POST https://graph.microsoft.com/v1.0/subscriptions
Content-Type: application/json
{
"changeType": "created",
"notificationUrl": "https://webhook.contoso.com/api",
"lifecycleNotificationUrl": "https://webhook.contoso.com/api",
"resource": "solutions/virtualEvents/webinars/{webinarId}/getAttendanceReports",
"expirationDateTime": "2021-02-01T11:00:00.0000000Z",
"clientState": "secretClientState"
}
Suscripción a notificaciones de eventos de sesión para un seminario web
Para suscribirse a las notificaciones de las sesiones que se crean o actualizan en un seminario web, especifique el recurso como solutions/virtualEvents/webinars/{webinarId}/sessions.
Una aplicación solo puede tener una suscripción de nivel de sesión única por seminario web en un inquilino. Un token delegado por el usuario le permite configurar una suscripción para recibir notificaciones de actualización del seminario web dentro de un inquilino. Esta suscripción solo está disponible para los usuarios que organizaron o organizaron seminarios web en el mismo inquilino que el host de eventos.
POST https://graph.microsoft.com/v1.0/subscriptions
Content-Type: application/json
{
"changeType": "created, updated",
"notificationUrl": "https://webhook.contoso.com/api",
"lifecycleNotificationUrl": "https://webhook.contoso.com/api",
"resource": "solutions/virtualEvents/webinars/{webinarId}/sessions",
"expirationDateTime": "2021-02-01T11:00:00.0000000Z",
"clientState": "secretClientState"
}
Suscribirse a la publicación de vídeo a petición para todas las sesiones de un seminario web
Para suscribirse a notificaciones para cuando se produzca la publicación de vídeo a petición de una sesión, especifique el recurso como solutions/virtualEvents/{eventType}/{eventId}/getVideoOnDemandPublication.
Una aplicación solo puede tener una suscripción por evento virtual en un inquilino para publicaciones de vídeo a petición. Un token delegado de usuario permite configurar una suscripción por evento virtual en un inquilino. La suscripción solo está disponible para los usuarios que son el organizador o que aparecen como coorganizador en el mismo inquilino que el host de eventos.
POST https://graph.microsoft.com/beta/subscriptions
{
"changeType": "updated",
"notificationUrl": "https://webhook.contoso.com/api",
"lifecycleNotificationUrl": "https://webhook.contoso.com/api",
"resource": "solutions/virtualEvents/{eventType}/{eventId}/getVideoOnDemandPublication",
"expirationDateTime": "2025-02-01T11:00:00.0000000Z",
"clientState": "secretClientState"
}
Suscribirse a eventos de llamada de reunión de una sesión específica
Para obtener información sobre cómo suscribirse a eventos de llamadas a reuniones de una sesión específica, consulte Obtención de notificaciones de cambio para las actualizaciones de llamadas a reuniones de Microsoft Teams.
Suscripción a eventos de registro para un seminario web
Para suscribirse a notificaciones para eventos de registro de un seminario web, especifique el recurso como solutions/virtualEvents/webinars/{webinarId}/registrations.
Una aplicación solo puede tener una suscripción de nivel de registro única por seminario web dentro de un inquilino. Un token delegado por el usuario le permite configurar una suscripción para recibir notificaciones de actualización del seminario web dentro de un inquilino. Sin embargo, la suscripción solo está disponible para los usuarios que organizaron o organizaron seminarios web en el mismo inquilino que el host de eventos.
POST https://graph.microsoft.com/v1.0/subscriptions
Content-Type: application/json
{
"changeType": "created, updated",
"notificationUrl": "https://webhook.contoso.com/api",
"lifecycleNotificationUrl": "https://webhook.contoso.com/api",
"resource": "solutions/virtualEvents/webinars/{webinarId}/registrations",
"expirationDateTime": "2021-02-01T11:00:00.0000000Z",
"clientState": "secretClientState"
}
Suscribirse a eventos actualizados de un ayuntamiento específico
Para recibir notificaciones actualizadas de un ayuntamiento determinado, debe crear una suscripción para ese ayuntamiento único mediante el siguiente recurso: solutions/virtualEvents/townhalls/{townhall_id}.
Una aplicación solo puede tener una suscripción por ayuntamiento dentro de un inquilino. Un token delegado por el usuario le permite configurar una suscripción para recibir notificaciones de actualización del ayuntamiento dentro de un inquilino. Esta suscripción solo está disponible para los usuarios que organizaron o organizaron conjuntamente ayuntamientos en el mismo inquilino que el host de eventos.
POST https://graph.microsoft.com/beta/subscriptions
{
"changeType": "updated",
"notificationUrl": "https://contonso.com",
"lifecycleNotificationUrl": "https://contonso.com",
"resource": "solutions/virtualevents/townhalls/{townhall_id},
"expirationDateTime": "2026-01-31T12:00:00.0000000Z",
"clientState": "virtualevent-townhall-subscription",
}
Recepción de notificaciones de eventos
Las notificaciones incluyen la dirección URL del recurso modificado. Puede enviar una solicitud independiente a la dirección URL del recurso para obtener información sobre un recurso creado o actualizado.
Tipos de notificación
En la tabla siguiente se indican los tipos de notificación y cambio admitidos para el recurso de eventos virtuales.
| Tipo de notificación | Id. de recurso | Tipos de modificación |
|---|---|---|
| Seminario web | solutions/virtualEvents/webinars/{webinarId} |
creado, actualizado |
| Session | solutions/virtualEvents/webinars/{webinarId}/sessions/{sessionId} |
creado, actualizado |
| Registro | solutions/virtualEvents/webinars/{webinarId}/registrations/{registrationId} |
creado, actualizado |
| Informe de asistencia a reuniones | solutions/virtualEvents/webinars/{webinarId}/getAttendanceReports |
creado |
| Ayuntamiento | solutions/virtualEvents/townhalls/{townhallId} |
creado, actualizado |
| Session | solutions/virtualEvents/townhalls/{townhallId}/sessions/{sessionId} |
creado, actualizado |
| Informe de asistencia a reuniones | solutions/virtualEvents/townhalls/{webinarId}/getAttendanceReports |
creado |
| Vídeo de sesión a petición publicado | solutions/virtualEvents/{eventType}/{eventId}/sessions/{sessionId} |
Actualizado |
Ejemplos de notificación de eventos
En los ejemplos JSON siguientes se muestran las respuestas para cada tipo de cambio admitido de un evento.
Evento creado
{
"value": [
{
"subscriptionId": "7015b436-a8b8-4260-af80-5af8cba32e62",
"clientState": "secret client state",
"changeType": "created",
"tenantId": "f5b076c8-b508-4ba3-a1a7-19d1c0bcef03",
"resource": "solutions/virtualEvents/events/",
"subscriptionExpirationDateTime": "2023-01-28T00:00:00.0000000Z",
"resourceData": {
"@odata.id": "solutions/virtualEvents/webinars/{webinarId}/",
"@odata.type": "#microsoft.graph.virtualEvent",
"id": "solutions/virtualEvents/webinars/{webinarId}/"
}
}
]
}
Seminario web actualizado
{
"value": [
{
"subscriptionId": "7015b436-a8b8-4260-af80-5af8cba32e62",
"clientState": "secret client state",
"changeType": "updated",
"tenantId": "f5b076c8-b508-4ba3-a1a7-19d1c0bcef03",
"resource": "solutions/virtualEvents/webinars/{webinarId}/",
"subscriptionExpirationDateTime": "2023-01-28T00:00:00.0000000Z",
"resourceData": {
"@odata.id": "solutions/virtualEvents/webinars/{webinarId}/",
"@odata.type": "#microsoft.graph.virtualEvent",
"id": "solutions/virtualEvents/webinars/{webinarId}/"
}
}
]
}
Ejemplos de notificación de sesión
En los ejemplos JSON siguientes se muestran las respuestas para cada tipo de cambio admitido de una sesión.
Sesión creada
{
"value": [
{
"subscriptionId": "7015b436-a8b8-4260-af80-5af8cba32e62",
"clientState": "secret client state",
"changeType": "created",
"tenantId": "f5b076c8-b508-4ba3-a1a7-19d1c0bcef03",
"resource": "solutions/virtualEvents/webinars/{webinarId}/sessions",
"subscriptionExpirationDateTime": "2023-01-28T00:00:00.0000000Z",
"resourceData": {
"@odata.id": "solutions/virtualEvents/webinars/{webinarId}/sessions/{sessionId}",
"@odata.type": "#microsoft.graph.virtualEventSession",
"id": "solutions/virtualEvents/webinars/{webinarId}/sessions/{sessionId}"
}
}
]
}
Sesión actualizada
{
"value": [
{
"subscriptionId": "7015b436-a8b8-4260-af80-5af8cba32e62",
"clientState": "secret client state",
"changeType": "updated",
"tenantId": "f5b076c8-b508-4ba3-a1a7-19d1c0bcef03",
"resource": "solutions/virtualEvents/webinars/{webinarId}/sessions",
"subscriptionExpirationDateTime": "2023-01-28T00:00:00.0000000Z",
"resourceData": {
"@odata.id": "solutions/virtualEvents/webinars/{webinarId}/sessions/{sessionId}",
"@odata.type": "#microsoft.graph.virtualEventSession",
"id": "solutions/virtualEvents/webinars/{webinarId}/sessions/{sessionId}"
}
}
]
}
Vídeo a petición publicado
Eventos que se crean cuando se publica vídeo a petición para una sesión de eventos virtuales. La aplicación o el usuario pueden usar **resourceData.@odata.id** para detectar qué vídeo a petición de sesión de eventos virtuales está disponible.
Cuando se recibe una notificación para sesiones de seminario web de eventos virtuales, la notificación solo informa a la aplicación o al usuario de que se publica la dirección URL de vídeo a petición para el seminario web de eventos virtuales. La dirección URL de vídeo a petición de la sesión de eventos virtuales puede ser nula o solo puede usarse por el organizador. La aplicación o el usuario deben determinar qué direcciones URL únicas de vídeo a petición se deben proporcionar a distintos participantes, ya que una única dirección URL de vídeo a petición no funciona para todos los usuarios.
Para las sesiones del ayuntamiento de eventos virtuales, hay disponible una dirección URL universal de vídeo a petición en el objeto de sesión de eventos virtual, que pueden usar todos los participantes.
{
"value": [
{
"subscriptionId": "7015b436-a8b8-4260-af80-5af8cba32e62",
"clientState": "secret client state",
"changeType": "updated",
"tenantId": "f5b076c8-b508-4ba3-a1a7-19d1c0bcef03",
"resource": "solutions/virtualEvents/{eventType}/{eventId}/getVideoOnDemandPublication",
"subscriptionExpirationDateTime": "2023-01-28T00:00:00.0000000Z",
"resourceData": {
"@odata.id": "solutions/virtualEvents/{eventType}/{eventId}/sessions/{sessionId}",
"@odata.type": "#microsoft.graph.virtualeventsession",
"id": "solutions/virtualEvents/{eventType}/{eventId}/sessions/{sessionId}"
}
}
]
}
Eventos actualizados de la llamada a reunión de sesión
Para obtener información sobre los tipos de notificaciones recibidas para las actualizaciones de llamadas a reuniones, consulte Tipos de notificaciones de eventos.
Ejemplos de notificaciones de registro
En los ejemplos JSON siguientes se muestran las respuestas para cada tipo de cambio admitido de un registro.
Registro creado
{
"value": [
{
"subscriptionId": "7015b436-a8b8-4260-af80-5af8cba32e62",
"clientState": "secret client state",
"changeType": "created",
"tenantId": "f5b076c8-b508-4ba3-a1a7-19d1c0bcef03",
"resource": "solutions/virtualEvents/webinars/{webinarId}/registrations",
"subscriptionExpirationDateTime": "2023-01-28T00:00:00.0000000Z",
"resourceData": {
"@odata.id": "solutions/virtualEvents/webinars/{webinarId}/registrations/{registrationId}",
"@odata.type": "#microsoft.graph.virtualEventRegistration",
"id": "solutions/virtualEvents/webinars/{webinarId}/registrations/{registrationId}"
}
}
]
}
Registro actualizado
{
"value": [
{
"subscriptionId": "7015b436-a8b8-4260-af80-5af8cba32e62",
"clientState": "secret client state",
"changeType": "updated",
"tenantId": "f5b076c8-b508-4ba3-a1a7-19d1c0bcef03",
"resource": "solutions/virtualEvents/webinars/{webinarId}/registrations",
"subscriptionExpirationDateTime": "2023-01-28T00:00:00.0000000Z",
"resourceData": {
"@odata.id": "solutions/virtualEvents/webinars/{webinarId}/registrations/{registrationId}",
"@odata.type": "#microsoft.graph.virtualEventRegistration",
"id": "solutions/virtualEvents/webinars/{webinarId}/registrations/{registrationId}"
}
}
]
}
Informe de asistencia creado
Los eventos creados por un informe de asistencia devuelven el punto de conexión del objeto meetingAttendanceReport . Los usuarios pueden usar este punto de conexión en **resourceData.@odata.id** para consultar los detalles del objeto meetingAttendanceReport .
{
"value": [
{
"subscriptionId": "7015b436-a8b8-4260-af80-5af8cba32e62",
"clientState": "secret client state",
"changeType": "created",
"tenantId": "f5b076c8-b508-4ba3-a1a7-19d1c0bcef03",
"resource": "solutions/virtualEvents/webinars/{webinarId}/getAttendanceReports",
"subscriptionExpirationDateTime": "2023-01-28T00:00:00.0000000Z",
"resourceData": {
"@odata.id": "solutions/virtualEvents/webinars/{webinarId}/sessions/{sessionId}/attendanceReports/{reportId}",
"@odata.type": "#microsoft.graph.meetingAttendanceReport",
"id": "{reportId}"
}
}
]
}
Ayuntamiento creado
{
"value": [
{
"subscriptionId": "eb1226bf-be92-0a00-04c5-43d87ee913c6",
"clientState": "virtualevent-townhall-subscription",
"changeType": "created",
"resource": "solutions/virtualevents/townhalls/{townhallId}",
"subscriptionExpirationDateTime": "2026-01-28T00:00:00.0000000Z",
"resourceData": {
"@odata.type": "#microsoft.graph.virtualEventTownhall",
"@odata.id": "solutions/virtualevents/townhalls/{townhallId}",
"id": "solutions/virtualevents/townhalls/{townhallId}"
}
}
]
}