Compartir a través de


Obtención de notificaciones de cambios para las actualizaciones de eventos virtuales de Microsoft Teams

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}"
      }
    }
  ]
}