Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As notificações de alteração no Microsoft Graph suportam subscrições para eventos virtuais. As notificações de alteração fornecem um modelo de baixa latência ao permitir-lhe manter um webhook para eventos virtuais do Microsoft Teams. As subscrições de eventos virtuais têm um período máximo de um dia. Para prolongar a duração de uma subscrição, a subscrição tem de ser renovada antes do período de expiração. Em alternativa, um utilizador pode decidir criar uma nova subscrição para o recurso após a expiração de uma subscrição existente. Para obter mais informações, consulte Utilizar o microsoft API do Graph para obter notificações de alteração.
Permissões
| Tipo de permissão | Permissões (da com menos para a com mais privilégios) | Versões com suporte |
|---|---|---|
| Delegado (conta corporativa ou de estudante) | VirtualEvent.Read, VirtualEvent.ReadWrite | v1.0, Beta |
| Delegado (conta pessoal da Microsoft) | Sem suporte. | Sem suporte. |
| Application | VirtualEvent.Read.All | v1.0, Beta |
Eventos virtuais subscritos
A tabela seguinte fornece um resumo dos tipos de eventos virtuais subscritos, os URLs de recursos utilizados no payload da subscrição e os tipos de alteração suportados para a subscrição de notificação.
| Tipos de eventos virtuais | URL do Recurso | Tipos de alteração suportados | Tipos de permissões suportados |
|---|---|---|---|
| Todos os eventos (ao nível do inquilino) | solutions/virtualEvents/events |
criadas | Application |
| Todos os eventos (ao nível do inquilino por IDs de organizador/co-organizador) | solutions/virtualEvents/events/getEventsFromOrganizers(organizerIds=['id1', 'id2']) |
criadas | Application |
| Os eventos de um webinar específico | solutions/virtualEvents/webinars/{webinarId} |
atualizado | Aplicação, delegada |
| Eventos prontos para relatórios de participação para um webinar | solutions/virtualEvents/webinars/{webinarId}/getAttendanceReports |
criadas | Aplicação, delegada |
| Os eventos de sessão de um **webinar ** | solutions/virtualEvents/webinars/{webinarId}/sessions |
criado, atualizado | Aplicação, delegada |
| Os eventos de registo de um webinar | solutions/virtualEvents/webinars/{webinarId}/registrations |
criado, atualizado | Aplicação, delegada |
| Os eventos de uma câmara municipal específica | solutions/virtualEvents/townhalls/{townhallId} |
atualizado | Aplicação, delegada |
| Eventos prontos do relatório de presenças para uma câmara municipal | solutions/virtualEvents/townhalls/{townhallId}/getAttendanceReports |
criadas | Aplicação, delegada |
| Os eventos de sessão de uma câmara municipal específica | solutions/virtualEvents/townhalls/{townhallId}/sessions |
criado, atualizado | Aplicação, delegada |
| Publicação pronta para vídeo a pedido | solutions/virtualEvents/{eventType}/{eventId}/getVideoOnDemandPublication |
atualizado | Aplicação, delegada |
Subscrever todos os eventos criados num inquilino
Pode especificar subscrições para todos os eventos de uma aplicação e inquilino exclusivos no payload da subscrição com a seguinte sintaxe: solutions/virtualEvents/events. A subscrição designa o URL de notificação para receber todas as notificações criadas por eventos num inquilino para eventos virtuais. Apenas são suportadas notificações criadas por eventos para esta subscrição. Um inquilino só pode ter um tipo de subscrição por aplicação. As permissões de eventos virtuais delegadas pelo utilizador estão impedidas de criar este tipo de subscrição.
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"
}
Subscrever todos os eventos criados num inquilino com organizadores relevantes
Pode subscrever todos os eventos que incluam membros de um conjunto de organizadores ou co-organizadores através do seguinte recurso: solutions/virtualEvents/events/getEventsFromOrganizers(organizerIds=['id1', 'id2']). Estas subscrições recebem notificações criadas para todos os eventos virtuais para um conjunto de IDs de organizador ou co-organizador. Esta subscrição é considerada uma subscrição de todos os eventos criados num inquilino. As permissões de eventos virtuais delegadas pelo utilizador estão impedidas de criar este tipo de subscrição.
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"
}
Subscrever eventos atualizados de um webinar específico
Para receber notificações atualizadas de um webinar específico, tem de criar uma subscrição para esse webinar exclusivo com o seguinte recurso: solutions/virtualEvents/webinars/{webinarId}.
Uma aplicação só pode ter uma subscrição por webinar dentro de um inquilino. Um token delegado pelo utilizador permite-lhe configurar uma subscrição para receber notificações de atualização de webinars num inquilino. Esta subscrição só está disponível para utilizadores que organizaram ou co-organizaram webinars no mesmo inquilino que o anfitrião do evento.
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"
}
Subscrever eventos de relatórios de participação para todas as sessões num webinar
Para receber notificações quando os relatórios de assiduidade ficam disponíveis para sessões num webinar de eventos virtuais, tem de ser criada uma subscrição com o seguinte recurso: solutions/virtualEvents/webinars/{webinarId}/getAttendanceReports.
Uma aplicação só pode ter uma subscrição para os relatórios de participação de um webinar dentro de um inquilino. Um token delegado pelo utilizador permite-lhe configurar uma subscrição para receber notificações de atualização de webinars num inquilino. Esta subscrição só está disponível para utilizadores que organizaram ou co-organizaram webinars no mesmo inquilino que o anfitrião do evento.
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"
}
Subscrever notificações de eventos de sessão para um webinar
Para subscrever notificações para sessões que são criadas ou atualizadas num webinar, especifique o recurso como solutions/virtualEvents/webinars/{webinarId}/sessions.
Uma aplicação só pode ter uma subscrição de nível de sessão individual por webinar num inquilino. Um token delegado pelo utilizador permite-lhe configurar uma subscrição para receber notificações de atualização de webinars num inquilino. Esta subscrição só está disponível para utilizadores que organizaram ou co-organizaram webinars no mesmo inquilino que o anfitrião do evento.
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"
}
Subscrever a publicação de vídeo a pedido para todas as sessões num webinar
Para subscrever notificações para quando ocorrer a publicação de vídeo a pedido de uma sessão, especifique o recurso como solutions/virtualEvents/{eventType}/{eventId}/getVideoOnDemandPublication.
Uma aplicação só pode ter uma subscrição por evento virtual num inquilino para publicações de vídeo a pedido. Um token delegado de utilizador permite-lhe configurar uma subscrição por evento virtual num inquilino. A subscrição só está disponível para utilizadores que sejam o organizador ou listados como co-organizadores no mesmo inquilino que o anfitrião do evento.
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"
}
Subscrever eventos de chamada de reunião de uma sessão específica
Para obter informações sobre como subscrever eventos de chamada de reunião de uma sessão específica, consulte Obter notificações de alteração para atualizações de chamadas de reunião do Microsoft Teams.
Subscrever eventos de registo de um webinar
Para subscrever notificações para eventos de registo de um webinar, especifique o recurso como solutions/virtualEvents/webinars/{webinarId}/registrations.
Uma aplicação só pode ter uma subscrição de nível de registo individual por webinar dentro de um inquilino. Um token delegado pelo utilizador permite-lhe configurar uma subscrição para receber notificações de atualização de webinars num inquilino. No entanto, a subscrição só está disponível para utilizadores que organizaram ou co-organizaram webinars no mesmo inquilino que o anfitrião do evento.
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"
}
Subscrever eventos atualizados de uma câmara municipal específica
Para receber notificações atualizadas para uma determinada câmara municipal, tem de criar uma subscrição para essa câmara municipal exclusiva com o seguinte recurso: solutions/virtualEvents/townhalls/{townhall_id}.
Uma aplicação só pode ter uma subscrição por câmara municipal dentro de um inquilino. Um token delegado pelo utilizador permite-lhe configurar uma subscrição para receber notificações de atualização da câmara municipal num inquilino. Esta subscrição só está disponível para utilizadores que organizaram ou co-organizaram câmaras municipais no mesmo inquilino que o anfitrião do evento.
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",
}
Receber notificações de eventos
As notificações incluem o URL do recurso alterado. Pode enviar um pedido separado para o URL do recurso para obter informações sobre um recurso criado ou atualizado.
Tipos de notificação
A tabela seguinte indica os tipos de notificação e alteração suportados para o recurso de eventos virtuais.
| Tipo de notificação | ID do recurso | Alterar tipos |
|---|---|---|
| Webinar | solutions/virtualEvents/webinars/{webinarId} |
criado, atualizado |
| Sessão | solutions/virtualEvents/webinars/{webinarId}/sessions/{sessionId} |
criado, atualizado |
| Registro | solutions/virtualEvents/webinars/{webinarId}/registrations/{registrationId} |
criado, atualizado |
| Relatório de Participação na Reunião | solutions/virtualEvents/webinars/{webinarId}/getAttendanceReports |
criadas |
| Câmara Municipal | solutions/virtualEvents/townhalls/{townhallId} |
criado, atualizado |
| Sessão | solutions/virtualEvents/townhalls/{townhallId}/sessions/{sessionId} |
criado, atualizado |
| Relatório de Participação na Reunião | solutions/virtualEvents/townhalls/{webinarId}/getAttendanceReports |
criadas |
| Sessão de vídeo a pedido publicada | solutions/virtualEvents/{eventType}/{eventId}/sessions/{sessionId} |
atualizado |
Exemplos de notificação de eventos
Os exemplos JSON seguintes mostram as respostas para cada tipo de alteração suportado de um evento.
Evento criado
{
"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}/"
}
}
]
}
Webinar atualizado
{
"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}/"
}
}
]
}
Exemplos de notificação de sessão
Os exemplos JSON seguintes mostram as respostas para cada tipo de alteração suportado de uma sessão.
Sessão criada
{
"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}"
}
}
]
}
Sessão atualizada
{
"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 pedido publicado
Eventos que são criados quando o vídeo a pedido é publicado para uma sessão de evento virtual. A aplicação ou o utilizador pode utilizar o **resourceData.@odata.id** para descobrir que vídeo a pedido da sessão de eventos virtuais está disponível.
Quando é recebida uma notificação para sessões de webinar de eventos virtuais, a notificação apenas informa a aplicação ou o utilizador de que o URL de vídeo a pedido do webinar de eventos virtuais é publicado. O URL de vídeo a pedido para a sessão de evento virtual pode ser nulo ou utilizável apenas pelo organizador. A aplicação ou o utilizador tem de determinar quais os URLs exclusivos de vídeo a pedido a fornecer a diferentes participantes, uma vez que um único URL de vídeo a pedido não funciona para todos os utilizadores.
Para sessões da câmara municipal de eventos virtuais, está disponível um URL universal de vídeo a pedido no objeto de sessão de evento virtual, que pode ser utilizado por todos os 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 atualizados da chamada de reunião de sessão
Para obter informações sobre os tipos de notificações recebidas para atualizações de chamadas de reunião, veja Tipos de notificações de eventos.
Exemplos de notificações de registo
Os exemplos JSON seguintes mostram as respostas para cada tipo de alteração suportado de um registo.
Registo criado
{
"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}"
}
}
]
}
Registo atualizado
{
"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}"
}
}
]
}
Relatório de participação criado
Os eventos criados por um relatório de participação devolvem o ponto final do objeto meetingAttendanceReport . Os utilizadores podem utilizar este ponto final no **resourceData.@odata.id** para consultar os detalhes no 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}"
}
}
]
}
Câmara municipal criada
{
"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}"
}
}
]
}