Usar a API do Microsoft Graph para acessar as notificações de alteração

Namespace: microsoft.graph

Importante

APIs na /beta versão no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível em v1.0, use o seletor De versão.

A API REST do Microsoft Graph usa um mecanismo de webhook para fornecer notificações de alteração aos clientes. Um cliente é um serviço Web que configura sua própria URL para receber notificações. Aplicativos cliente usam notificações para atualizar seu estado após alterações. Para saber mais, incluindo como se inscrever e lidar com as notificações recebidas, confira Configurar notificações para alterações nos dados de usuário.

Usando a API do Microsoft Graph, um aplicativo pode se inscrever para alterações nos seguintes recursos:

Recurso Trajetórias dos recursos com suporte Os dados do recurso podem ser incluídos nas notificações
Impressão na nuvem [printer][] Alterações quando um trabalho de impressão está pronto para ser baixado (evento JobFetchable):
/print/printers/{id}/jobs
Não
Impressão na nuvem printTaskDefinition Alterações quando há um trabalho válido na fila (evento JobStarted) :
/print/printtaskdefinition/{id}/tasks
Não
driveItem no OneDrive for Business Alterações no conteúdo da hierarquia de qualquer pasta:
/drives/{id}/root
/users/{id}/drive/root
Não
driveItem no OneDrive (pessoal) Alterações no conteúdo da hierarquia de qualquer pasta:
/users/{id}/drive/root
Não
[Grupo][] Alterações em todos os grupos:
/groups
Alterações em um grupo específico:
/groups/{id}
Mudanças nos proprietários de um grupo específico:
/groups/{id}/owners
Mudanças em membros de um grupo específico:
/groups/{id}/members
Não
[lista][] em um site do SharePoint /sites/{id}/lists/{id} Não
Grupo Microsoft 365 [conversação][] Alterações nas conversas de um grupo:
groups/{id}/conversations
Não
[Evento][] do Outlook Alterações em todas as mensagens na caixa de correio de um usuário:
/users/{id}/events
Não
[Mensagem][] do Outlook Alterações em todas as mensagens na caixa de correio de um usuário:
/users/{id}/messages
Alterações em todas as mensagens na caixa de entrada de um usuário:
/users/{id}/mailFolders('inbox')/messages
Não
Contato pessoal do Outlook Alterações em todas as mensagens na caixa de correio de um usuário:
/users/{id}/contacts
Não
Alerta de segurança Alterações em um alerta específico:
/security/alerts/{id}
Alterações em alertas filtrados:
/security/alerts/?$filter
Não
Teams callRecord Mudanças para todos os registros de chamadas: /communications/callRecords Não
[Canal][] do Teams Alterações nos canais em todas as equipes:
/teams/getAllChannels
Alterações no canal em uma equipe específica:
/teams/{id}/channels
Sim
Chat do Teams Alterações em qualquer chat no locatário:
/chats
Alterações em um chat específico:
/chats/{id}
Sim
Equipes chatmessage Alterações nas mensagens de chat em todos os canais de todas as equipes:
/teams/getAllMessages
Alterações nas mensagens de um chat específico:
/teams/{id}/channels/{id}/messages
Alterações nas mensagens de todos os chats:
/chats/getAllMessages
Alterações nas mensagens de um chat específico:
/chats/{id}/messages
Alterações nas mensagens de chat em todos os chats de que um usuário específico faz parte:
/users/{id}/chats/getAllMessages
Sim
conversationMember do Teams Alterações na associação em uma equipe específica:
/teams/{id}/members
Alterações na associação em um chat específico:
/chats/{id}/members
Alterações na associação em todos os chats:
/chats/getAllMembers
Alterações na associação em todos os canais em uma equipe específica:
teams/{id}/channels/getAllMembers
Sim
Teams presença Alterações na presença de um único usuário: /communications/presences/{id}
Alterações em várias presenças de usuário:
/communications/presences?$filter=id in ({id},{id}...)
Sim
Equipe do [Teams][] Alterações em qualquer equipe no locatário:
/teams
Alterações em uma equipe específica:
/teams/{id}
Sim
todoTask Alterações em todas as tarefas em uma lista de tarefas específica:
/me/todo/lists/{todoTaskListId}/tasks
Não
Usuário Alterações em todos os usuários:
/users
Alterações em um usuário específico:
/users/{id}
Não

Observação: qualquer trajetória de recurso que comece com o /users/{id} também pode aceitar /me referenciar o usuário conectado.

Permissions

Em geral, as operações de assinatura exigem permissão de leitura ao recurso. Por exemplo, para obter notificações de mensagens, seu aplicativo precisa da permissão Mail.Read. O artigo criar assinatura lista as permissões necessárias para cada tipo de recurso. A tabela a seguir lista os tipos de permissões que o aplicativo pode solicitar para usar webhooks para tipos específicos de recursos.

Tipo de permissão Tipos de recurso com suporte
Delegado - conta corporativa ou de estudante [alert][], channel , chat , [contact][], [conversation][], conversationMember, driveItem, list, event, group [,][] message, user , [][] [presence][], chatMessage (preview), team, todoTask [][]
Delegado - conta pessoal da Microsoft [contact][], driveItem, list, event, message,todoTask
Aplicativo [alert][], channel, chat, [contact][], driveItem, list [,][]event , group [,][] message, user , callRecord, chatMessage, conversationMember, [printer][], printTaskDefinition, team

Confira também