message: delta

Namespace: microsoft.graph

Receba um conjunto de mensagens adicionadas, excluídas ou atualizadas em uma pasta especificada.

Uma chamada de função delta para mensagens em uma pasta é semelhante a uma solicitação GET, exceto que, aplicando tokens de estado adequadamente em uma ou mais dessas chamadas, você pode consultar alterações incrementais nas mensagens dessa pasta. Ele permite que você mantenha e sincronize um armazenamento local das mensagens de um usuário sem ter que buscar todo o conjunto de mensagens do servidor todas as vezes.

Essa API está disponível nas seguintes implantações de nuvem nacional.

Serviço global Governo dos EUA L4 US Government L5 (DOD) China operada pela 21Vianet

Permissões

Escolha a(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.

Tipo de permissão Permissões menos privilegiadas Permissões com privilégios mais elevados
Delegado (conta corporativa ou de estudante) Mail.ReadBasic Mail.Read, Mail.ReadWrite
Delegado (conta pessoal da Microsoft) Mail.ReadBasic Mail.Read, Mail.ReadWrite
Aplicativo Mail.ReadBasic.All Mail.Read, Mail.ReadWrite

Solicitação HTTP

Para obter todas as alterações nas mensagens na pasta de email especificada:

GET /me/mailFolders/{id}/messages/delta
GET /users/{id}/mailFolders/{id}/messages/delta

Para obter especificamente apenas mensagens criadas, atualizadas ou excluídas no mailFolder especificado:

GET /me/mailFolders/{id}/messages/delta?changeType=created
GET /users/{id}/mailfolders/{id}/messages/delta?changeType=created

GET /me/mailFolders/{id}/messages/delta?changeType=updated
GET /users/{id}/mailFolders/{id}/messages/delta?changeType=updated

GET /me/mailFolders/{id}/messages/delta?changeType=deleted
GET /users/{id}/mailFolders/{id}/messages/delta?changeType=deleted

Parâmetros de consulta

O acompanhamento de alterações em mensagens incorre em uma rodada de uma ou mais chamadas de função delta . Se você usar qualquer parâmetro de consulta (diferente de e $skiptoken) que seja uma opção de $deltatoken consulta do sistema OData ou a opção de consulta personalizada changeType, deverá especificá-lo na solicitação delta inicial. O Microsoft Graph codifica automaticamente todos os parâmetros especificados na parte do token da URL @odata.nextLink ou @odata.deltaLink fornecida na resposta. Você só precisa especificar uma vez os parâmetros de consulta desejados antecipadamente. Em solicitações subsequentes, basta copiar e aplicar a @odata.nextLink URL ou @odata.deltaLink da resposta anterior, pois essa URL já inclui os parâmetros codificados e desejados.

Parâmetro de consulta Tipo Descrição
$deltatoken cadeia de caracteres Um token de estado retornado na @odata.deltaLink URL da chamada de função delta anterior para a mesma coleção de mensagens, indicando a conclusão dessa rodada de controle de alterações. Salve e aplique toda a URL @odata.deltaLink, incluindo esse token na primeira solicitação da próxima série de controle de alterações desse conjunto.
$skiptoken string Um token de estado retornado na URL @odata.nextLink da chamada de função delta anterior indicando que não há mais alterações a serem controladas na mesma coleção de mensagens.
changeType string Uma opção de consulta personalizada para filtrar a resposta delta com base no tipo de alteração. Os valores com suporte são created, updated, ou deleted.

Parâmetros de consulta OData

  • Você pode usar um parâmetro de consulta $select como em qualquer solicitação GET para especificar somente as propriedades necessárias para obter melhor desempenho. A propriedade id sempre será retornada.
  • Suporte à consulta delta $select, $top e $expand para mensagens.
  • Há suporte limitado para $filter e $orderby:
    • As únicas expressões $filter suportadas são $filter=receivedDateTime+ge+{value} ou $filter=receivedDateTime+gt+{value}.
    • A única expressão $orderby suportada é $orderby=receivedDateTime+desc. Se você não incluir uma $orderby expressão, a ordem de devolução não será garantida.
  • Não há suporte para $search.

Observação

As consultas delta para mensagens podem retornar eventos de alteração que não correspondem às condições de filtro especificadas na solicitação inicial.
Eles incluem:

  • @removed entradas quando "reason": "deleted" um item é excluído ou movido da pasta.
  • Alterações de estado lidas/não lidas.

Esses eventos não se originam de alterações na própria mensagem. Eles são emitidos como parte do processo de sincronização no nível da pasta do qual os tokens delta dependem.
O rastreamento delta opera no nível da coleção , não no nível da mensagem e, portanto, esses eventos não são filtrados.

Os clientes devem estar preparados para lidar com essas entradas para manter uma exibição local precisa e totalmente sincronizada da coleção de mensagens.

Cabeçalhos de solicitação

Nome Tipo Descrição
Autorização string {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
Content-Type string application/json. Obrigatório.
Preferir cadeia de caracteres odata.maxpagesize={x}. Opcional.

Resposta

Se bem-sucedido, este método retorna o código de resposta 200 OK e uma coleção de objetos message no corpo da resposta.

Exemplo

Solicitação

O exemplo a seguir mostra como fazer uma única chamada de função delta e limitar o número máximo de mensagens no corpo da resposta a dois.

Para controlar as alterações nas mensagens em uma pasta, você faria uma ou mais chamadas de função delta para obter o conjunto de alterações incrementais desde a última consulta delta. Para obter um exemplo que mostra uma rodada de chamadas de consulta delta, consulte Obter alterações incrementais nas mensagens em uma pasta.

GET https://graph.microsoft.com/v1.0/me/mailFolders/AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OAAuAAAAAAAiQ8W967B7TKBjgx9rVEURAQAiIsqMbYjsT5e-T7KzowPTAAAAAAFNAAA=/messages/delta
Prefer: odata.maxpagesize=2

Resposta

Se a solicitação for bem-sucedida, a resposta incluirá um token de estado, que é um skipToken (em um cabeçalho de resposta @odata.nextLink ) ou um deltaToken (em um cabeçalho de resposta @odata.deltaLink ). Respectivamente, eles indicam se você deve continuar com a rodada ou se concluiu a obtenção de todas as alterações para essa rodada.

A resposta mostra um skipToken em um cabeçalho de resposta @odata.nextLink .

Observação: O objeto de resposta exibido aqui pode ser encurtado para legibilidade.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.nextLink":"https://graph.microsoft.com/v1.0/me/mailFolders/{id}/messages/delta?$skiptoken={_skipToken_}",
  "value": [
    {
      "receivedDateTime": "datetime-value",
      "sentDateTime": "datetime-value",
      "hasAttachments": true,
      "internetMessageId": "internetMessageId-value",
      "subject": "subject-value",
      "body": {
        "contentType": "contentType-value",
        "content": "content-value"
      }
    }
  ]
}