Compartilhar via


evento: delta

Namespace: microsoft.graph

Obtenha um conjunto de eventos recursos que foram adicionados, excluídos ou atualizados em um calendárioView (um intervalo de eventos definidos por datas de início e fim) do calendário principal do usuário.

Geralmente, sincronizar eventos em um calendárioView em uma repositório local implica em uma rodada de várias chamadas de função delta. A chamada inicial é uma sincronização completa, e cada chamada delta subsequente na mesma rodada recebe as alterações incrementais (acréscimos, exclusões ou atualizações). Isto permite manter e sincronizar uma repositório local de eventos no calendárioView especificado, sem ter que ir buscar todos os eventos desse calendário do servidor toda vez.

Esta API está disponível nas seguintes implementações de cloud nacionais.

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

Permissões

Escolha a permissão ou permissões marcadas como menos privilegiadas para esta API. Utilize uma permissão ou permissões com privilégios mais elevados apenas se a sua aplicação o exigir. Para obter detalhes sobre as permissões delegadas e de aplicação, veja Tipos de permissão. Para saber mais sobre estas permissões, veja a referência de permissões.

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

Solicitação HTTP

GET /me/calendarView/delta?startDateTime={start_datetime}&endDateTime={end_datetime}
GET /users/{id}/calendarView/delta?startDateTime={start_datetime}&endDateTime={end_datetime}

Parâmetros de consulta

O registo de alterações em eventos implica uma ronda de uma ou mais chamadas de função delta . Se você usar qualquer parâmetro de consulta (diferente de $deltatoken e $skiptoken), especifique-o na primeira solicitação delta. 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. Nos pedidos subsequentes, basta copiar e aplicar o @odata.nextLink URL ou @odata.deltaLink da resposta anterior, uma vez que esse URL já inclui os parâmetros codificados e pretendidos.

Parâmetro de consulta Tipo Descrição
startDateTime String A data e a hora de início do intervalo de tempo, representadas no formato ISO 8601. Por exemplo, "2015-11-08T19:00:00.0000000".
endDateTime String A data e a hora de término do intervalo de tempo, representadas no formato ISO 8601. Por exemplo, "2015-11-08T20:00:00.0000000".
$deltatoken string Um token de estado devolvido no @odata.deltaLink URL da chamada da função delta anterior para a mesma vista de calendário, indicando a conclusão dessa ronda de controlo de alterações. Guarde e aplique todo @odata.deltaLink o URL, incluindo este token, no primeiro pedido da próxima ronda de controlo de alterações para essa vista de calendário.
$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 no mesmo modo de exibição de calendário.

Parâmetros de consulta OData

  • Esperar uma delta chamada de função em um calendárioView para retornar as mesmas propriedades que você normalmente obteria de um GET /calendarView solicitação. Você não pode usar $select para obter apenas um subconjunto dessas propriedades.

  • Existem outros parâmetros de consulta OData que a função delta para calendarView não suporta: $expand, $filter,$orderby, e $search.

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.
Preferir string {Fuso horário}. Opcional, supõe-se o UTC se estiver ausente.

Resposta

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

Dentro de uma rodada de delta chamadas de função associadas ao intervalo de datas de um calendárioView, você pode encontrar uma delta chamada retornando dois tipos de eventos em @removed com o motivo deleted:

  • Eventos que estejam dentro do intervalo de datas e que tenham sido excluídos desde a chamada anterior delta.
  • Eventos que estejam fora do intervalo de datas e que tenham sido adicionados, excluídos ou atualizados desde a chamada anterior delta.

Filtre os eventos sob @removed para o intervalo de datas que seu cenário requer.

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 eventos no corpo da resposta a 2.

Para controlar as alterações em um modo de exibição de calendário, você faz uma ou mais chamadas de função delta, com os tokens de estado apropriados, para obter o conjunto de alterações incrementais desde a última consulta delta.

GET https://graph.microsoft.com/v1.0/me/calendarView/delta?startdatetime={start_datetime}&enddatetime={end_datetime}
Prefer: odata.maxpagesize=2

Resposta

Se o pedido for bem-sucedido, a resposta incluirá um token de estado, que é um skipToken (num cabeçalho de resposta @odata.nextLink ) ou um deltaToken (num cabeçalho de resposta @odata.deltaLink ). Respetivamente, indicam se deve continuar com a ronda ou se concluiu a obtenção de todas as alterações para essa ronda.

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/calendarView/delta?$skiptoken={_skipToken_}",
  "value": [
    {
      "originalStartTimeZone": "originalStartTimeZone-value",
      "originalEndTimeZone": "originalEndTimeZone-value",
      "responseStatus": {
        "response": "response-value",
        "time": "datetime-value"
      },
      "transactionId": null,
      "iCalUId": "iCalUId-value",
      "reminderMinutesBeforeStart": 99,
      "isDraft": false,
      "isReminderOn": true
    }
  ]
}