message: delta

Namespace: microsoft.graph

Obtenha um conjunto de mensagens que foram 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 adequadamente tokens de estado em uma ou mais dessas chamadas, você pode consultar alterações incrementais nas mensagens nessa pasta. Isso permite que você mantenha e sincronize um repositório local das mensagens de um usuário sem precisar buscar todo o conjunto de mensagens do servidor todas as vezes.

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

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

Permissões

Escolha a permissão ou as permissões marcadas como menos privilegiadas para essa API. Use uma permissão ou permissões privilegiadas mais altas 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 privilegiadas mais altas
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 no mailFolder especificado:

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 nas mensagens incorre em uma rodada de uma ou mais chamadas de função delta . Se você usar qualquer parâmetro de consulta (diferente $deltatoken e $skiptoken) que seja uma opção de consulta do sistema OData ou a opção de consulta personalizada changeType, você deverá especifique-o 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. Nas 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 rastreamento 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 cadeia de caracteres 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 expressão $orderby, a ordem de retorno não será garantida.
  • Não há suporte para $search.

Cabeçalhos de solicitação

Nome Tipo Descrição
Autorização string {token} de portador. Obrigatório.
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 acompanhar 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 você concluiu a obtenção de todas as alterações para essa rodada.

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

Observação: o objeto de resposta mostrado 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"
      }
    }
  ]
}