Exportar conteúdo com as APIs de Exportação do Microsoft Teams

As APIs de Exportação do Teams permitem exportar 1:1, chat em grupo, chats de reunião e mensagens de canal do Microsoft Teams. Se sua organização precisar exportar mensagens do Microsoft Teams, você poderá extraí-las usando APIs de Exportação do Teams. A Mensagem de Chat representa uma mensagem de chat individual em um canal ou chat. A mensagem de chat pode ser uma mensagem de chat raiz ou parte de um thread de resposta definido pela propriedade replyToId na mensagem de chat.

Aqui estão alguns exemplos sobre como você pode usar essas APIs de exportação:

  • Exemplo 1: se você habilitou o Microsoft Teams em sua organização e deseja exportar todas as mensagens do Microsoft Teams para a data programaticamente passando o intervalo de datas para um determinado usuário ou equipe.

  • Exemplo 2: se você quiser exportar programaticamente todas as mensagens de usuário ou equipe diariamente fornecendo um intervalo de datas. As APIs de exportação podem recuperar todas as mensagens criadas ou atualizadas durante o intervalo de datas determinado.

  • (Beta) Exemplo 3: se você quiser exportar programaticamente os links para gravações de reunião do Teams para um determinado organizador de reunião e baixar as gravações reais.

  • (Beta) Exemplo 4: se você quiser exportar programaticamente os links para transcrições de reunião do Teams para um determinado organizador da reunião e baixar as transcrições reais.

O que é suportado pelas APIs de Exportação do Teams?

  • Exportação em massa de mensagem do Teams: As APIs de Exportação do Teams dão suporte a até 200 RPS por aplicativo por locatário e 600 RPS para um aplicativo, com esses limites você deve ser capaz de exportar em massa mensagens do Teams.

  • Contexto do aplicativo: para chamar o Microsoft Graph, seu aplicativo deve adquirir um token de acesso do plataforma de identidade da Microsoft. O token de acesso contém informações sobre seu aplicativo e as permissões que ele tem para os recursos e APIs disponíveis por meio do Microsoft Graph. Para obter um token de acesso, seu aplicativo deve ser registrado com o plataforma de identidade da Microsoft e ser autorizado por um usuário ou um administrador para acesso aos recursos do Microsoft Graph de que precisa.

    Se você já estiver familiarizado com a integração de um aplicativo com o plataforma de identidade da Microsoft para obter tokens, consulte a seção Próximas Etapas para obter informações e exemplos específicos do Microsoft Graph.

  • Ambiente híbrido: Exportar mensagens de suporte a APIs enviadas por usuários provisionados em Ambiente Híbrido (Exchange local e Teams). Todas as mensagens enviadas por usuários configurados para ambiente híbrido estarão acessíveis usando APIs de exportação.

  • Mensagens excluídas pelo usuário: As mensagens excluídas pelos usuários do cliente do Teams podem ser acessadas usando APIs de exportação até 21 dias a partir do momento da exclusão.

  • Anexos de mensagem: As APIs de exportação incluem os links para os anexos enviados como parte das mensagens. Usando APIs de exportação, você pode recuperar os arquivos anexados nas mensagens.

  • Reações: Exportar APIs dá suporte a reações iniciadas por um usuário em uma mensagem do Teams. As reações atualmente apoiadas são coração, raiva, tipo, triste, surpresa e risada. Além de Reações, a API de Exportação também dá suporte ao Histórico de Edição de Reação, que inclui alterações e atualizações feitas a uma reação em uma mensagem.

  • Mensagens de canal compartilhado: As APIs de exportação dão suporte à captura de mensagens de um Canal Compartilhado.

  • Equipes excluídas: A API de exportação dá suporte à captura de mensagens do Teams excluídos e de canais padrão, privados e compartilhados excluídos.

  • Propriedades da mensagem de chat: Consulte a lista completa de propriedades que as APIs de Exportação do Teams dão suporte.

  • Controlar mensagens: Exportar API dá suporte à captura de mensagens de controle, além das mensagens geradas pelo usuário. Mensagens de controle são mensagens geradas pelo sistema que aparecem no cliente do Teams e carregam informações importantes, como "Usuário A adicionado usuário B ao chat e compartilhado todo o histórico de chat" junto com o carimbo de data/hora. As mensagens do sistema permitem que o chamador tenha insights sobre eventos ocorridos em uma equipe, um canal ou um chat. Atualmente, a API de Exportação dá suporte ao evento Adicionar Membro e Remover Membro para chats, equipes e canais padrão.

O que não é suportado pelas APIs de Exportação do Teams?

  • Interações do Teams Copilot & Microsoft 365 Chat: Exportar API não dá suporte ao usuário para mensagens de interação copilot e mensagens de chat do Microsoft 365 enviadas pelo bot.

Como acessar APIs de exportação do Teams

  • O exemplo 1 é uma consulta simples para recuperar todas as mensagens de um usuário ou equipe sem filtros:

    GET https://graph.microsoft.com/v1.0/users/{id}/chats/getAllMessages
    
    GET https://graph.microsoft.com/v1.0/teams/{id}/channels/getAllMessages
    
  • O exemplo 2 é uma consulta de exemplo para recuperar todas as mensagens de um usuário ou equipe especificando filtros de data e 50 mensagens principais:

    GET https://graph.microsoft.com/v1.0/users/{id}/chats/getAllMessages?$top=50&$filter=lastModifiedDateTime gt 2020-06-04T18:03:11.591Z and lastModifiedDateTime lt 2020-06-05T21:00:09.413Z
    
    GET https://graph.microsoft.com/v1.0/teams/{id}/channels/getAllMessages?$top=50&$filter=lastModifiedDateTime gt 2020-06-04T18:03:11.591Z and lastModifiedDateTime lt 2020-06-05T21:00:09.413Z
    
  • (Beta) O exemplo 3 é uma consulta de exemplo para recuperar os links para todas as gravações de reuniões do Teams disponíveis de um usuário. O filtro TOP n tem suporte semelhante às mensagens de Chat:

    GET https://graph.microsoft.com/beta/users/{id}/onlineMeetings/getAllRecordings?$filter=MeetingOrganizerId eq ‘{id}’
    
  • (Beta) O exemplo 4 é uma consulta de exemplo para recuperar os links para todas as transcrições de reuniões disponíveis do Teams de um usuário. O filtro TOP n tem suporte semelhante às mensagens de Chat:

    GET https://graph.microsoft.com/beta/users/{id}/onlineMeetings/getAllTranscripts?$filter=MeetingOrganizerId eq ‘{id}’
    

Observação

A API retorna a resposta com o link da próxima página no caso de vários resultados. Para obter o próximo conjunto de resultados, basta chamar GET na url de @odata.nextlink. Se @odata.nextlink não estiver presente ou nulo, todas as mensagens serão recuperadas.

Pré-requisitos para acessar APIs de exportação do Teams

  • As APIs do Microsoft Teams no Microsoft Graph que acessam dados confidenciais são consideradas APIs protegidas. Você pode chamar essas APIs desde que os requisitos de acesso sem um usuário sejam atendidos.

  • As permissões de aplicativo são usadas por aplicativos executados sem um usuário conectado presente; As permissões de aplicativo só podem ser aprovadas por um administrador. As seguintes permissões são necessárias:

    • Chat.Read.All: habilita o acesso a todas as mensagens de chat 1:1, chat em grupo e reunião

    • ChannelMessage.Read.All: habilita o acesso a todas as mensagens de canal

    • User.Read.All: habilita o acesso à lista de usuários de um locatário

    • OnlineMeetingTranscript.Read.All: habilita o acesso a transcrições para todas as reuniões agendadas do Teams 1:n

    • OnlineMeetingRecording.Read.All: permite acesso a gravações para todas as reuniões agendadas do Teams 1:n

Requisitos de licença para APIs de Exportação do Teams

A API de exportação dá suporte a cenários de segurança e conformidade (S+C) e uso geral por meio de um parâmetro de consulta de modelo. Os cenários S+C (Modelo A) incluem capacidade semeada e exigem uma assinatura E5 e os cenários de uso geral (Modelo B) estão disponíveis para todas as assinaturas e são somente consumo. Para obter mais informações sobre a capacidade semeada e as taxas de consumo, consulte Requisitos de licenciamento e pagamento para APIs do Microsoft Graph Teams.

Para APIs Beta, atualmente não há nenhuma aplicação de licenciamento ou uso do Modelo A ou do Modelo B. No entanto, isso está sujeito a alterações no futuro.

Cenários S+C/Model A

Restritos a aplicativos que executam funções de segurança e/ou conformidade, os usuários devem ter licenças E5 específicas para usar essa funcionalidade e receber a capacidade semeada. A capacidade de semente é por usuário e é calculada por mês e é agregada no nível do locatário. Para uso além da capacidade semeada, os proprietários de aplicativos são cobrados pelo consumo de API. O modelo A só pode acessar mensagens de usuários com uma licença E5 atribuída.

Nome do parceiro Solução de parceiro
logo-of-smarsh Arquivamento e conformidade do Microsoft Teams
Captura de tela do logotipo do Proofpoint. Captura de conteúdo do Ponto de Prova para Microsoft Teams

Cenários de uso geral/Modelo B

Disponível para todos os cenários não relacionados ao S+C, não há requisitos de licença ou capacidade semeada. Quando os medidores de consumo estiverem disponíveis, os proprietários de aplicativos serão cobrados por todas as chamadas mensais de API.

Os parceiros a seguir são certificados. Sua empresa pode optar por trabalhar com qualquer combinação desses parceiros em sua empresa.

Nome do parceiro Solução de parceiro
logo-of-rubrik Backup e recuperação do Microsoft Teams
logo-of-veeam Backup e recuperação do Microsoft Teams

Próximas etapas

Se você for um fornecedor que busca ingressar no programa de certificação, preencha esse formulário como a próxima etapa. Se você precisar fornecer contexto e detalhes adicionais, envie um email para a Equipe de Ecossistema do MS Teams (TeamsCategoryPartner@microsoft.com).

Modo de Avaliação (padrão)

Nenhuma declaração de modelo permite acesso a APIs com uso limitado por cada aplicativo de solicitação para fins de avaliação.

Representação JSON

  1. O exemplo a seguir é uma representação JSON do recurso de chat:

    Namespace: microsoft.graph

    {
     "id": "string (identifier)",
     "replyToId": "string (identifier)",
     "from": {"@odata.type": "microsoft.graph.identitySet"},
     "etag": "string",
     "messageType": "string",
     "createdDateTime": "string (timestamp)",
     "lastModifiedDateTime": "string (timestamp)",
     "deletedDateTime": "string (timestamp)",
     "subject": "string",
     "from": {
                 "application": null,
                 "device": null,
                 "conversation": null,
                 "user": {
    
                     "id": \[{"@odata.type": "microsoft.graph.user"}\],
                     "displayName": "User Name",
    
                     "userIdentityType": "aadUser"                }
             },
     "body": {"@odata.type": "microsoft.graph.itemBody"},
     "summary": "string",
    
     "chatId": \[{"@odata.type": "microsoft.graph.chat"}\]
    
     "attachments": \[{"@odata.type": "microsoft.graph.chatMessageAttachment"}\],
     "mentions": \[{"@odata.type": "microsoft.graph.chatMessageMention"}\],
     "importance": "string",
     "locale": "string",
     }
    

    Observação

    Para obter mais informações sobre o recurso chatMessage, consulte o artigo tipo de recurso chatMessage .

  2. O exemplo a seguir é uma representação JSON do recurso de gravação:

    Namespace: microsoft.graph

    {
     "@odata.context": "https://graph.microsoft.com/beta/$metadata#Collection(meetingRecording)", 
     "@odata.count": 2, 
     "@odata.nextLink": "https://graph.microsoft.com/beta/users('{userId}')/onlineMeetings/getAllRecordings?$filter=MeetingOrganizerId+eq+%27{userId}%27&$skiptoken=MSMjMCMjTkNaYVNIQjVVbXRPYWxaV1dscGFWVGg1V2pOb1IxUXpRWGxrUm1oTFVrWmtTV1ZyYkhwUlZVWm9UMWR3VEdWWGRFTlJWVVpDVVZFOVBRPT0%3d", 
     "value":
       [ 
         { 
          "@odata.type": "#microsoft.graph.meetingRecording", 
          "id": "6263af16-b660-41d0-a17b-83fbd15a39c7", 
          "meetingId": "MSoxMjczYTAxNi0yMDFkRLTmOTUtODA5My0xYjdmOTliM2VkZWIqMCoqMTk6bWVldGluZ19aR1F3WTJZNE9XTXROekppWlMwME1XWTRMVGc0TWpBdE1BBXdOV1kzWlRsak9UTXlAdGhyZWFkLnYy", 
          "meetingOrganizerId": "{userId}", 
          "createdDateTime": "2022-08-03T20:43:36.2573447Z", 
          "recordingContentUrl":    "https://graph.microsoft.com/beta/users/{userId}/onlineMeetings/MSoxMjczYTAxNi0yMDFkLTRmOTUtODA4My0xYjdmOTliM2VkZWIqMCoqMTk6bWVldGluZ19aR1F3WTJZNE9XTXROekppWlMwME1XWTRMVGc0TWpBdE1ERXdOV1kzWlRsak9UTXlAdGhyZWFkLnYy/recordings/MSMjMCMjMGFjNmUwZTgtYmZjYy00NDQxLTk2MGYtZjllNjVhNjI0NzBh/content" 
         }, 
         { 
          "@odata.type": "#microsoft.graph.meetingRecording", 
          "id": "{recordingId}", 
          "meetingId": "{meetingId}", 
          "meetingOrganizerId": "{userId}", 
          "createdDateTime": "2022-08-03T20:44:11.2635254Z", 
          "recordingContentUrl": " https://graph.microsoft.com/beta/users/{userId}/onlineMeetings/{meetingId}/recordings/{recordingId}/content" 
          },
        ] 
       }
    

    Onde:

    • <id> representa uma única gravação.

    • <meetingId> representa um identificador de reunião ou chamada.

    • <meetingOrganizerId> representa o organizador da reunião.

    • <createdDateTime> indica a hora de início da reunião.

    • <recordingContentUrl> valor indica URL para o conteúdo da gravação.

    • As gravações estão no formato MP4.

    • O tamanho médio do conteúdo de gravação em si é de cerca de 350 MB em disco, com base nas médias que estamos vendo para reuniões que estão no intervalo de 30 minutos a 60 minutos.

    • Os resultados não são garantidos para serem classificados por createdDateTime. No entanto, no caso de várias gravações estarem presentes para uma única reunião, elas compartilharão o mesmo meetingId valor. Além disso, as entradas para as várias gravações são sequenciadas corretamente para a reunião em questão.

    • Os resultados devem estar presentes somente depois que as gravações de reunião associadas estiverem disponíveis. Em outras palavras, nenhuma sondagem adicional para disponibilidade é necessária pelo chamador.

    • A paginação dos resultados será suportada de acordo com os padrões atuais na API de Exportação do Teams. A paginação terá suporte por meio da presença de @oData.nextLink propriedade na resposta. A propriedade nextLink contém um skipToken valor, conforme indicado abaixo. Se não skipToken estiver presente, significa que não há mais resultados a serem recuperados no lote atual:

      Solicitação Resposta @nextLink Comentários
      /getAllRecordings Contagem: 10 ?skipToken=ABC Solicitação inicial sem skipToken
      /getAllRecordings?skipToken=ABC Contagem: 10 ?skipToken=DEF SkipToken retornado, solicitação para obter a próxima página
      /getAllRecordings?skipToken=DEF Contagem: 7 Sem skipToken, sem mais dados disponíveis
    • $top o parâmetro também terá suporte de acordo com os padrões atuais na API de Exportação do Teams.

    • DeltaToken para habilitar cenários de rastreamento e sincronização de alterações, há suporte. Para obter uma visão geral e exemplos de consultas delta existentes, consulte Usar consulta delta para acompanhar as alterações nos dados do Microsoft Graph.

    • A API a seguir pode ser usada para obter o conteúdo de gravação real do selecionado userId, meetingId e recordingId que foi obtido na resposta da API GET getAllRecordings . Ele retorna o conteúdo da gravação:

    GET users('{userId}')/onlineMeetings('{meetingId}')/recordings('{recordingId}')/content 
    
  3. O exemplo a seguir é uma representação JSON do recurso de transcrição:

    Namespace: microsoft.graph

    {
      "@odata.context": "https://graph.microsoft.com/beta/$metadata#Collection(callTranscript)",  
      "@odata.count": 2, 
      "@odata.nextLink": "https://graph.microsoft.com/beta/users('{userId}')/onlineMeetings/getAllTranscripts?$filter=MeetingOrganizerId+eq+%27{userId}%27&$skiptoken=MSMjMCMjTkNaYVNIQjVVbXRPYWxaV1dscGFWVGg1V2pOb1IxUXpRWGxrUm1oTFVrWmtTV1ZyYkhwUlZVWm9UMWR3VEdWWGRFTlJWVVpDVVZFOVBRPT0%3d",  
      "value":
        [ 
          { 
           "@odata.type": "#microsoft.graph.callTranscript", 
           "id": "MSMjMCMjMGFjNmUwZTgtYmZjYy00NDQxLTk2MGYtZjllNjVhNjI0NzBh", 
           "meetingId": "MSoxMjczYTAxNi0yMDFkLTRmOTUtODA4My0xYjdmOTliM2VkZWIqMCoqMTk6bWVldGluZ19aR1F3WTJZNE9XTXROekppWlMwME1XWTRMVGc0TWpBdE1ERXdOV1kzWlRsak9UTXlAdGhyZWFkLnYy", 
           "meetingOrganizerId": "{userId}", 
           "transcriptContentUrl": "https://graph.microsoft.com/beta/users/{userId}/onlineMeetings/MSoxMjczYTAxNi0yMDFkLTRmOTUtODA4My0xYjdmOTliM2VkZWIqMCoqMTk6bWVldGluZ19aR1F3WTJZNE9XTXROekppWlMwME1XWTRMVGc0TWpBdE1ERXdOV1kzWlRsak9UTXlAdGhyZWFkLnYy/transcripts/MSMjMCMjMGFjNmUwZTgtYmZjYy00NDQxLTk2MGYtZjllNjVhNjI0NzBh/content", 
          "createdDateTime": "2022-08-03T20:43:36.6248355Z" 
          }, 
          { 
           "@odata.type": "#microsoft.graph.callTranscript", 
           "id": "{transcriptId}", 
           "meetingId": "{meetingId}", 
           "meetingOrganizerId": "{userId}", 
           "transcriptContentUrl": "https://graph.microsoft.com/beta/users/{userId}/onlineMeetings/{meetingId}/transcripts/{transcriptId}/content",   
           },
         ] 
        }
    

    Onde:

    • <id> representa uma única gravação.

    • <meetingId> representa um identificador de reunião ou chamada.

    • <meetingOrganizerId> representa o organizador da reunião.

    • <createdDateTime> indica a hora de início da reunião.

    • <transcriptContentUrl> valor indica URL para o conteúdo da transcrição.

    • O conteúdo da transcrição, por padrão, estará no formato VTT. Mas, o uso de um valor de cabeçalho Aceitar do application/vnd.openxmlformats-officedocument.wordprocessingml.documentformato DOCX também pode ser obtido.

    • O tamanho médio do conteúdo da transcrição em si no formato JSON/VTT é de cerca de 300 KB, com base nas médias que estamos vendo para reuniões que estão no intervalo de 30 minutos – 60 minutos.

    • Os resultados não são garantidos para serem classificados por createdDateTime. No entanto, no caso em que várias gravações estiverem presentes para uma única reunião, elas compartilharão o mesmo meetingId valor. Além disso, as entradas das várias gravações serão sequenciadas corretamente para a reunião em questão.

    • Os resultados devem estar presentes somente depois que as gravações de reunião associadas estiverem disponíveis. Em outras palavras, nenhuma sondagem adicional para disponibilidade é necessária pelo chamador.

    • A paginação dos resultados será suportada de acordo com os padrões atuais na API de Exportação do Teams. A paginação terá suporte por meio da presença de @oData.nextLink propriedade na resposta. A nextLink propriedade conterá um skipToken valor, conforme indicado abaixo. Se não skipToken estiver presente, significa que não há mais resultados a serem recuperados no lote atual:

      Solicitação Resposta @nextLink Comentários
      /getAllTranscripts Contagem: 10 ?skipToken=ABC Solicitação inicial sem skipToken
      /getAllTranscripts?skipToken=ABC Contagem: 10 ?skipToken=DEF SkipToken retornado, solicitação para obter a próxima página
      /getAllTranscripts?skipToken=DEF Contagem: 7 Sem skipToken, sem mais dados disponíveis
    • $top o parâmetro também terá suporte de acordo com os padrões atuais na API de Exportação do Teams.

    • DeltaToken para habilitar cenários de rastreamento e sincronização de alterações, há suporte. Para obter uma visão geral e exemplos de consultas delta existentes, consulte Usar consulta delta para acompanhar as alterações nos dados do Microsoft Graph

    • A API a seguir pode ser usada para obter o conteúdo de transcrição real do userId selecionado, meetingId e transcriptId obtidos na resposta da API getAllTranscripts GET. Ele retorna o conteúdo da gravação.

    GET users('{userId}')/onlineMeetings('{meetingId}')/transcripts('{transcriptId}')/content
    

Para obter mais informações, consulte Usar APIs do Graph para buscar a transcrição.

Exportar filtros de API

Exportar API hospedada no Serviço de Grafo do Teams obtém todas as mensagens de usuário da caixa de correio do usuário Substrate usando users/{userId}/chats/getAllMessages. A API de exportação recupera mensagens enviadas e recebidas para um usuário que leva à exportação de mensagens duplicadas ao chamar a API para todos os usuários no thread de chat.

A API de exportação tem parâmetros de filtro que ajudam a otimizar as mensagens retornadas para um thread de chat. A API GET dá suporte a novos parâmetros de filtro que permitem uma maneira de extrair mensagens com base nas mensagens de evento de usuário, bot, aplicativo e sistema enviados. O parâmetro de filtro dá suporte a mensagens enviadas pelo seguinte:

  • usuários (várias IDs de usuário com suporte na mesma solicitação)

  • aplicativos (bots, conectores etc.)

  • usuários anônimos

  • usuários federados (usuários de acesso externo)

  • mensagens de evento do sistema (mensagens de controle)

Esses parâmetros fazem parte do $filter. Se nenhum desses parâmetros estiver presente na solicitação, as mensagens de todos os usuários presentes nos chats de usuário especificados serão retornadas.

Os cenários de filtragem com suporte são os seguintes:

$filter=from/application/applicationIdentityType eq '<appType>' (bots/tenantBots/connectors, etc.)  
  
$filter=from/user/id eq '<oid>' (any number of id filters)  
  
$filter=from/user/userIdentityType eq 'anonymousGuest'  
  
$filter=from/user/userIdentityType eq 'federatedUser' (guest/external)  
  
$filter=from/application/applicationIdentityType eq '<appType>' or from/user/id eq '<oid>' (sent by app or userid)  
  
$filter=from/application/applicationIdentityType eq '<appType>' or from/user/userIdentityType eq 'anonymousGuest' (sent by app or anonymous)  

$filter=from/application/applicationIdentityType eq '<appType>' or from/user/userIdentityType eq 'federatedUser' (sent by app or federated)  
  
$filter=from/application/applicationIdentityType eq '<appType>' or from/user/userIdentityType eq 'anonymousGuest' or from/user/userIdentityType eq 'federatedUser' (sent by app, anonymous or federated)  
  
$filter=from/user/id eq '<oid>' or from/user/userIdentityType eq 'anonymousGuest' (sent by any number of userid or anonymous)  
  
$filter=from/user/id eq '<oid>' or from/user/userIdentityType eq 'federatedUser' (sent by any number of userid or federated)  

$filter=from/application/applicationIdentityType eq '<appType>' or from/user/id eq '<oid>' or from/user/userIdentityType eq 'anonymousGuest' or from/user/userIdentityType eq 'federatedUser' (sent by any number of userid or federated or anonymous)
 
$filter=from/application/applicationIdentityType eq '<appType>' or from/user/id eq '<oid>' or from/user/userIdentityType eq 'anonymousGuest' or from/user/userIdentityType eq 'federatedUser' (sent by any number of userid or federated or anonymous) or messsageType eq 'systemEventMessage'

(<any of the previous filters>) and (lastModifiedDateTime+gt+<date>+and+lastModifiedDateTime+lt+<date>)  
  • A consulta retorna mensagens enviadas pelo usuário especificado se from/user/id eq ‘{oid}’ estiver presente.

  • A consulta retorna mensagens enviadas pelos usuários federados que fazem parte dos chats do usuário, se from/user/userIdentityType eq ‘federatedUser’ estiver presente.

  • a consulta retorna mensagens enviadas pelo tipo de aplicativo especificado se from/application/applicationIdenitytyType eq '{appType}' estiver presente.

  • a consulta retorna mensagens enviadas pelo sistema se messageType eq 'systemEventMessage' estiver presente

Esses parâmetros podem ser combinados entre eles usando os operadores or, bem como combinando com o lastModifiedDateTime$filter parâmetro.