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

As APIs de Exportação do Teams permitem-lhe exportar 1:1, chat de grupo, conversas de reunião e mensagens de canal do Microsoft Teams. Se a sua organização precisar de exportar mensagens do Microsoft Teams, poderá extraí-las através das APIs de Exportação do Teams. A Mensagem de Chat representa uma mensagem de chat individual num canal ou chat. A mensagem de chat pode ser uma mensagem de chat de raiz ou parte de um tópico de resposta definido pela propriedade replyToId na mensagem de chat.

Eis alguns exemplos sobre como pode utilizar estas APIs de exportação:

  • Exemplo 1: se tiver ativado o Microsoft Teams na sua organização e quiser exportar todas as mensagens do Microsoft Teams para a data programaticamente ao passar o intervalo de datas para um determinado utilizador ou equipa.

  • Exemplo 2: se quiser exportar programaticamente todas as mensagens de utilizador ou equipa diariamente, fornecendo um intervalo de datas. As APIs de exportação podem obter todas as mensagens criadas ou atualizadas durante o intervalo de datas especificado.

  • Exemplo 3: se quiser exportar programaticamente as ligações para gravações de reuniões do Teams para um determinado organizador de reunião e, em seguida, transferir as gravações reais.

  • Exemplo 4: se quiser exportar programaticamente as ligações para transcrições de reuniões do Teams para um determinado organizador de reunião e, em seguida, transferir as transcrições reais.

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

  • Mensagem exportação em massa do Teams: As APIs de Exportação do Teams suportam até 200 RPS por Aplicação Por inquilino e 600 RPS para uma Aplicação, com estes limites que deverá conseguir exportar em massa de mensagens do Teams.

  • Contexto da Aplicação: para chamar o Microsoft Graph, a sua aplicação tem de adquirir um token de acesso do plataforma de identidade da Microsoft. O token de acesso contém informações sobre a sua aplicação e as permissões que tem para os recursos e APIs disponíveis através do Microsoft Graph. Para obter um token de acesso, a sua aplicação tem de estar registada no plataforma de identidade da Microsoft e ser autorizada por um utilizador ou administrador para aceder aos recursos do Microsoft Graph de que precisa.

    Se já estiver familiarizado com a integração de uma aplicação com o plataforma de identidade da Microsoft para obter tokens, consulte a secção Passos Seguintes para obter informações e exemplos específicos do Microsoft Graph.

  • Ambiente Híbrido: Exportar mensagens de suporte de APIs enviadas por utilizadores que são aprovisionados no Ambiente Híbrido (Exchange no local e Teams). Todas as mensagens enviadas por utilizadores configurados para o ambiente híbrido são acessíveis através das APIs de Exportação.

  • Mensagens Eliminadas pelo Utilizador: As mensagens que são eliminadas pelos utilizadores do cliente do Teams podem ser acedidas através de APIs de exportação até 21 dias a partir do momento da eliminação.

  • Anexos de Mensagens: As APIs de exportação incluem as ligações para os anexos que são enviados como parte das mensagens. Com a opção Exportar APIs, pode obter os ficheiros anexados nas mensagens.

  • Reações: As reações de suporte das APIs de exportação iniciadas por um utilizador numa mensagem do Teams. As reações atualmente apoiadas são de coração, zangados, como, tristes, surpreendidos e risos. Além das Reações, a API de Exportação também suporta o Histórico de Edição de Reações, que inclui alterações e atualizações feitas a uma reação numa mensagem.

  • Mensagens de Canal Partilhado: As APIs de exportação suportam a captura de mensagens de um Canal Partilhado.

  • Equipas Eliminadas: A API de Exportação suporta a captura de mensagens do Teams eliminado e canais padrão, privados e partilhados eliminados.

  • Utilizadores Eliminados: a API de Exportação suporta a captura de mensagens para utilizadores eliminados até 30 dias a partir do momento em que o utilizador foi eliminado. Para localizar a lista de utilizadores eliminados, consulte Itens Eliminados.

  • Propriedades da Mensagem de Chat: Veja a lista completa de propriedades suportadas pelas APIs de Exportação do Teams.

  • Mensagens de Controlo: A API de Exportação suporta a captura de mensagens de controlo para além das mensagens geradas pelo utilizador. As Mensagens de Controlo são mensagens geradas pelo sistema que aparecem no cliente do Teams e transportam informações importantes como "Utilizador A adicionou o Utilizador B ao chat e partilhou todo o histórico de conversas" juntamente com o carimbo de data/hora. As mensagens de sistema permitem que o autor da chamada tenha informações sobre eventos ocorridos numa equipa, num canal ou numa conversa. Veja a lista de mensagens de controlo que a API de Exportação suporta atualmente.

Nota

Atualmente, as mensagens de controlo relacionadas com reuniões não são suportadas pela API de Exportação.

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

  • Interações do Teams Copilot & Microsoft 365 Chat: a API de Exportação não suporta mensagens de interação do utilizador para o Copilot e mensagens de chat do Microsoft 365 enviadas pelo bot.

Como aceder às APIs de Exportação do Teams

  • O exemplo 1 é uma consulta simples para obter todas as mensagens de um utilizador ou equipa 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 obter todas as mensagens de um utilizador ou equipa ao especificar filtros de data/hora e as 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
    
  • O exemplo 3 é uma consulta de exemplo para obter as ligações para todas as gravações de reuniões do Teams disponíveis de um utilizador. A filtragem do intervalo de datas é suportada. O filtro TOP n é suportado de forma semelhante às mensagens de Chat:

    GET https://graph.microsoft.com/v1.0/users/{id}/onlineMeetings/getAllRecordings?$filter=MeetingOrganizer/User/Id eq ‘{id}’
    
    GET  https://graph.microsoft.com/v1.0/users/{id}/onlineMeetings/getAllRecordings(meetingOrganizerUserId='{userId}',startDateTime={startDateTime},endDateTime={endDateTime})
    
  • O exemplo 4 é uma consulta de exemplo para obter as ligações para todas as transcrições de reuniões do Teams disponíveis de um utilizador. A filtragem do intervalo de datas é suportada. O filtro TOP n é suportado de forma semelhante às mensagens de Chat:

    GET https://graph.microsoft.com/v1.0/users/{id}/onlineMeetings/getAllTranscripts?$filter=MeetingOrganizer/User/Id eq ‘{id}’
    
    GET https://graph.microsoft.com/v1.0/users/{id}/onlineMeetings/getAllTranscripts(meetingOrganizerUserId='{userId}',startDateTime={startDateTime},endDateTime={endDateTime})
    

Nota

A API devolve a resposta com a ligação da página seguinte em caso de múltiplos resultados. Para obter o próximo conjunto de resultados, basta chamar GET no URL de @odata.nextlink. Se @odata.nextlink não estiver presente ou nulo, todas as mensagens serão obtidas.

Nota

A ordem das mensagens na resposta não é garantida para ser ordenada por qualquer datetime, como createdDateTime nem lastModifiedDateTime.

Pré-requisitos para aceder às APIs de Exportação do Teams

  • As APIs do Microsoft Teams no Microsoft Graph que acedem a dados confidenciais são consideradas APIs protegidas. Pode chamar estas APIs desde que os requisitos de acesso sem um utilizador sejam cumpridos.

  • As permissões de aplicação são utilizadas por aplicações que são executadas sem um utilizador com sessão iniciada presente; as permissões de aplicação só podem ser aprovadas por um administrador. São necessárias as seguintes permissões:

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

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

    • User.Read.All: permite o acesso à lista de utilizadores de um inquilino

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

    • OnlineMeetingRecording.Read.All: permite o 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 suporta cenários de Segurança e Conformidade (S+C) e de utilização geral através de um parâmetro de consulta de modelo. Os cenários S+C (Modelo A) incluem capacidade semeada e requerem uma subscrição E5 e os cenários gerais de utilização (Modelo B) estão disponíveis para todas as subscrições e são apenas de consumo. Para obter mais informações sobre a capacidade semeada e as taxas de consumo, veja Requisitos de licenciamento e pagamento das APIs do Microsoft Graph Teams.

Para as APIs Beta, não existem atualmente permissões de licenciamento ou utilização do Modelo A ou do Modelo B. No entanto, isto está sujeito a alterações no futuro.

Cenários S+C/Model A

Restringidos a aplicações que executam funções de segurança e/ou conformidade, os utilizadores têm de ter licenças E5 específicas para utilizar esta funcionalidade e receber capacidade semeada. A capacidade propagada é por utilizador e é calculada por mês e agregada ao nível do inquilino. Para utilização para além da capacidade semeada, os proprietários de aplicações são cobrados pelo consumo de API. O Modelo A só pode aceder a mensagens de utilizadores com uma licença E5 atribuída.

Nome do Parceiro Solução de Parceiro
logo-de-smarsh Arquivo e Conformidade do Microsoft Teams
Captura de ecrã do logótipo do Proofpoint. Captura de Conteúdo do Proofpoint para o Microsoft Teams

Cenários gerais de utilização/Modelo B

Disponível para todos os cenários não relacionados com S+C, não existem requisitos de licença ou capacidade propagada. Quando os medidores de consumo ficam disponíveis, os proprietários de aplicações são cobrados por todas as chamadas à API mensais.

Os seguintes parceiros estão certificados. A sua empresa pode optar por trabalhar com qualquer combinação destes parceiros na sua empresa.

Nome do Parceiro Solução de Parceiro
logo-of-rubrik Cópia de segurança e recuperação do Microsoft Teams
logo-of-veeam Cópia de segurança e recuperação do Microsoft Teams

Próximas etapas

Se for um fornecedor que procura aderir ao programa de certificação, preencha este formulário como o passo seguinte. Se precisar de fornecer mais contexto e detalhes, envie um e-mail para a Equipa de Ecossistema do MS Teams (TeamsCategoryPartner@microsoft.com).

Modo de Avaliação (predefinição)

Nenhuma declaração de modelo permite o acesso a APIs com utilização limitada por cada aplicação que pede para fins de avaliação.

Representação JSON

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

    Espaço de nomes: 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",
     }
    

    Nota

    Para obter mais informações sobre o recurso chatMessage, veja o artigo chatMessage resource type (Tipo de recurso chatMessage ).

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

    Espaço de nomes: microsoft.graph

    {
     "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(meetingRecording)", 
     "@odata.count": 2, 
     "@odata.nextLink": "https://graph.microsoft.com/v1.0/users('{userId}')/onlineMeetings/getAllRecordings?$filter=MeetingOrganizer%2fUser%2fId+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/v1.0/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/v1.0/users/{userId}/onlineMeetings/{meetingId}/recordings/{recordingId}/content" 
          },
        ] 
       }
    

    Onde:

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

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

    • <meetingOrganizer/user/id> representa o organizador da reunião.

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

    • <recordingContentUrl> value indica URL para o conteúdo de 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 no disco, com base nas médias que estamos a ver para reuniões que estão entre 30 minutos e 60 minutos.

    • Não é garantido que os resultados sejam ordenados por createdDateTime. No entanto, no caso de várias gravações estarem presentes para uma única reunião, partilharão o mesmo meetingId valor. Além disso, as entradas das múltiplas gravações são sequenciadas corretamente para a reunião em questão.

    • É garantido que os resultados só estarão presentes depois de as gravações da reunião associadas estarem disponíveis. Por outras palavras, não é necessária nenhuma consulta adicional para disponibilidade pelo autor da chamada.

    • A paginação através dos resultados será suportada de acordo com os padrões atuais na API de Exportação do Teams. A paginação será suportada através da presença da @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 existem mais resultados a obter no lote atual:

      Solicitação Resposta @nextLink Comentários
      /getAllRecordings Contagem: 10 ?skipToken=ABC Pedido inicial sem skipToken
      /getAllRecordings?skipToken=ABC Contagem: 10 ?skipToken=DEF SkipToken devolvido, pedido para obter a página seguinte
      /getAllRecordings?skipToken=DEF Contagem: 7 Não skipToken, não existem mais dados disponíveis
    • $top O parâmetro também será suportado de acordo com os padrões atuais na API de Exportação do Teams.

    • DeltaToken para ativar cenários de controlo e sincronização de alterações é suportado. Para obter uma descrição geral e exemplos de consultas delta existentes, veja Utilizar a consulta delta para controlar as alterações nos dados do Microsoft Graph.

    • A API seguinte pode ser utilizada para obter o conteúdo de gravação real do selecionado userIde meetingIdrecordingId que foi obtido na resposta da API GET getAllRecordings . Devolve o conteúdo da gravação:

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

    Espaço de nomes: microsoft.graph

    {
      "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(callTranscript)",  
      "@odata.count": 2, 
      "@odata.nextLink": "https://graph.microsoft.com/v1.0/users('{userId}')/onlineMeetings/getAllTranscripts?$filter=MeetingOrganizer%2fUser%2fId+eq+%27{userId}%27&$skiptoken=MSMjMCMjTkNaYVNIQjVVbXRPYWxaV1dscGFWVGg1V2pOb1IxUXpRWGxrUm1oTFVrWmtTV1ZyYkhwUlZVWm9UMWR3VEdWWGRFTlJWVVpDVVZFOVBRPT0%3d",  
      "value":
        [ 
          { 
           "@odata.type": "#microsoft.graph.callTranscript", 
           "id": "MSMjMCMjMGFjNmUwZTgtYmZjYy00NDQxLTk2MGYtZjllNjVhNjI0NzBh", 
           "meetingId": "MSoxMjczYTAxNi0yMDFkLTRmOTUtODA4My0xYjdmOTliM2VkZWIqMCoqMTk6bWVldGluZ19aR1F3WTJZNE9XTXROekppWlMwME1XWTRMVGc0TWpBdE1ERXdOV1kzWlRsak9UTXlAdGhyZWFkLnYy", 
           "meetingOrganizerId": "{userId}", 
           "transcriptContentUrl": "https://graph.microsoft.com/v1.0/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/v1.0/users/{userId}/onlineMeetings/{meetingId}/transcripts/{transcriptId}/content",   
           },
         ] 
        }
    

    Onde:

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

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

    • <meetingOrganizer/user/id> representa o organizador da reunião.

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

    • <transcriptContentUrl> value indica URL para o conteúdo de transcrição.

    • Por predefinição, o conteúdo de transcrição estará no formato VTT. No entanto, a utilização de um valor de cabeçalho Accept do application/vnd.openxmlformats-officedocument.wordprocessingml.documentformato DOCX também pode ser obtida.

    • O tamanho médio do próprio conteúdo de transcrição no formato JSON/VTT é de cerca de 300 KB, com base nas médias que estamos a ver para reuniões que estão entre 30 minutos e 60 minutos.

    • Não é garantido que os resultados sejam ordenados por createdDateTime. No entanto, no caso de várias gravações estarem presentes para uma única reunião, partilharão o mesmo meetingId valor. Além disso, as entradas das múltiplas gravações serão sequenciadas corretamente para a reunião em questão.

    • É garantido que os resultados só estarão presentes depois de as gravações da reunião associadas estarem disponíveis. Por outras palavras, não é necessária nenhuma consulta adicional para disponibilidade pelo autor da chamada.

    • A paginação através dos resultados será suportada de acordo com os padrões atuais na API de Exportação do Teams. A paginação será suportada através da presença da @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 existem mais resultados a obter no lote atual:

      Solicitação Resposta @nextLink Comentários
      /getAllTranscripts Contagem: 10 ?skipToken=ABC Pedido inicial sem skipToken
      /getAllTranscripts?skipToken=ABC Contagem: 10 ?skipToken=DEF SkipToken devolvido, pedido para obter a página seguinte
      /getAllTranscripts?skipToken=DEF Contagem: 7 Não skipToken, não existem mais dados disponíveis
    • $top O parâmetro também será suportado de acordo com os padrões atuais na API de Exportação do Teams.

    • DeltaToken para ativar cenários de controlo e sincronização de alterações é suportado. Para obter uma descrição geral e exemplos de consultas delta existentes, veja Utilizar a consulta delta para controlar as alterações nos dados do Microsoft Graph

    • A API seguinte pode ser utilizada para obter o conteúdo de transcrição real do userId, meetingId e transcriptId selecionados que foi obtido na resposta da API GET getAllTranscripts. Devolve o conteúdo da gravação.

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

Para obter mais informações, veja Utilizar Graph APIs para obter a transcrição.

Exportar filtros de API

A API de Exportação alojada no Serviço de Gráficos do Teams obtém todas as mensagens de utilizador da caixa de correio do utilizador do Substrato através users/{userId}/chats/getAllMessagesde . A API de Exportação obtém mensagens enviadas e recebidas para um utilizador que leva à exportação de mensagens duplicadas ao chamar a API para todos os utilizadores no tópico de chat.

A API de Exportação tem parâmetros de filtro que ajudam a otimizar as mensagens devolvidas para um tópico de chat. A API GET suporta novos parâmetros de filtro que permitem extrair mensagens com base nas mensagens enviadas pelo utilizador, bot, aplicação e evento do sistema. O parâmetro filter suporta mensagens enviadas pelo seguinte:

  • utilizadores (vários IDs de utilizador suportados no mesmo pedido)

  • aplicações (bots, conectores, etc.)

  • utilizadores anónimos

  • utilizadores federados (utilizadores de acesso externo)

  • mensagens de eventos do sistema (mensagens de controlo)

Estes parâmetros fazem parte do pedido $filter. Se nenhum destes parâmetros estiver presente no pedido, as mensagens de todos os utilizadores presentes nas conversas de utilizador especificadas serão devolvidas.

Os cenários de filtragem suportados 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 devolve as mensagens enviadas pelo utilizador especificado, se from/user/id eq ‘{oid}’ estiver presente.

  • A consulta devolve mensagens enviadas pelos utilizadores federados que fazem parte das conversas de utilizador, se from/user/userIdentityType eq ‘federatedUser’ estiverem presentes.

  • a consulta devolve mensagens enviadas pelo tipo de aplicação especificado, se from/application/applicationIdenitytyType eq '{appType}' estiver presente.

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

Estes parâmetros podem ser combinados entre eles através dos operadores OR, bem como ao combinar com o lastModifiedDateTime$filter parâmetro .