Referência da API REST de tarefa do Outlook (beta)
Aplica-se ao: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com
Observação
Esta documentação inclui a API para anexos de referência em tarefas, que está na versão prévia. Os recursos de versão prévia estão sujeitos a alterações antes da finalização e podem violar o código que os utiliza. Por essa razão, em geral, você deve usar somente uma versão de produção de uma API em seu código de produção. Se disponível, v2.0 é, no momento, a versão preferida.
A API REST de Tarefa do Outlook permite criar, ler, sincronizar, atualizar e excluir as tarefas de um usuário protegidas pelo Active Directory do Azure no Office 365. A conta do usuário pode estar no Office 365 ou em uma conta da Microsoft (Hotmail.com, Live.com, MSN.com, Outlook.com e Passport.com).
Observação
Para simplificar a referência, o restante deste artigo usa o Outlook.com para incluir esses domínios de conta da Microsoft.
Não tem interesse na versão beta da API? No sumário à esquerda, vá para a seção de Referência da API REST do Office 365 e selecione a versão desejada.
Visão geral
Você pode usar uma tarefa no Outlook para acompanhar um item de trabalho. Você pode anotar suas datas de início, vencimento ou conclusão real, seu progresso ou status, ou se é recorrente ou requer lembrete.
As tarefas são organizadas em pastas de tarefas que, por sua vez, são organizadas em grupos de tarefas. Cada caixa de correio tem uma pasta de tarefas padrão (com a propriedade NomeTasks
) e um grupo de tarefas padrão (a propriedade Nome é My Tasks
).
Como usar a API REST da Tarefa
Autenticação
Assim como acontece com outras APIs REST do Outlook, para cada solicitação à API REST de tarefa você deve incluir um token de acesso válido. A obtenção de um token de acesso exige que você se registre e identifique seu aplicativo, e obtenha a autorização adequada.
Saiba mais aqui sobre algumas opções simplificadas de registro e autorização. Tenha isso em mente ao prosseguir com as operações específicas na API de Tarefa.
Versão da API
Essa API foi promovida da versão prévia para o status de Disponibilidade Geral (GA). Há suporte nas versões v2.0 e beta da API REST do Outlook.
Usuário de destino
As solicitações da API de tarefa sempre são realizadas em nome do usuário conectado.
Veja Usar a API REST do Outlook para obter mais informações comuns a todos os subconjuntos da API REST do Outlook.
Parâmetros de URL
Os exemplos neste artigo usam os seguintes espaços reservados como parâmetros de URLs de solicitação REST.
Parâmetro | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
attachment_id | sequência de caracteres | O ID numérico de um anexo, exclusivo na caixa de correio do usuário. |
folder_id | sequência de caracteres | O nome de pasta conhecido padrão Tasks ou um ID numérico de uma pasta de tarefas, exclusivo na caixa de correio do usuário. |
group_id | sequência de caracteres | O ID numérico de um grupo de tarefas, exclusivo na caixa de correio do usuário. |
task_id | sequência de caracteres | O ID numérico da tarefa, exclusivo na caixa de correio do usuário. |
Especificação das propriedades StartDateTime e DueDateTime
Ao criar uma tarefa:
- StartDateTime e DueDateTime são opcionais, mas configurar StartDateTime requer a configuração de DueDateTime para a mesma data ou posterior.
- Se você definir apenas StartDateTime, DueDateTime será automaticamente definida para o mesmo valor que StartDateTime.
- Se você definir DueDateTime para
null
, então StartDateTime também será definida automaticamente paranull
.
Se você optar por definir StartDateTime ou DueDateTime ao criar ou atualizar uma tarefa:
- Especifique as informações de data e fuso horário.
- Não especifique um horário específico nessas propriedades, pois o método POST (ou PATCH) sempre o ignora e adota meia-noite no fuso horário especificado.
- Por padrão, o método POST (ou PATCH) converte o valor para UTC e retorna isso em UTC na resposta.
Por exemplo, se você especificar 26 de abril no Horário Padrão do Leste (EST) na StartDateTime:
"StartDateTime": {
"DateTime": "2016-04-26T09:00:00",
"TimeZone": "Eastern Standard Time"
}
POST (ou PATCH) ignora a parte da hora, converte a meia-noite de 26 de abril em EST para UTC e retorna esse valor em UTC na resposta:
"StartDateTime": {
"DateTime": "2016-04-26T04:00:00.0000000",
"TimeZone": "UTC"
}
Você pode usar o cabeçalho Prefer: outlook.timezone
para que todas as propriedades relacionadas à data na resposta sejam representadas em um fuso horário diferente de UTC.
Retorno das propriedades relacionadas à data para um fuso horário personalizado
As propriedades relacionadas à data no recurso Tarefa incluem o seguinte:
- CompletedDateTime
- CreatedDateTime
- DueDateTime
- LastModifiedDateTime
- ReminderDateTime
- StartDateTime
Por padrão, as operações POST, GET, PATCH e Complete retornam as propriedades relacionadas à data em suas respostas REST em UTC. Você pode usar o cabeçalho Prefer: outlook.timezone
para que todas as propriedades relacionadas à data na resposta sejam representadas em um fuso horário diferente de UTC. O exemplo a seguir retorna as propriedades relacionadas à data em EST na resposta correspondente:
Prefer: outlook.timezone="Eastern Standard Time"
Veja Usar a API REST do Outlook para obter mais informações comuns a todos os subconjuntos da API REST do Outlook.
Criar tarefas
Escopo mínimo necessário
Crie uma tarefa. Existem dois cenários principais.
Você pode criar uma tarefa no grupo de tarefas padrão (My Tasks
) e na pasta de tarefas padrão (Tasks
) da caixa de correio do usuário. Nesse caso, você não precisa especificar nenhum grupo de tarefas ou pasta de tarefas.
POST https://outlook.office.com/api/beta/me/tasks
Você também pode criar uma tarefa em uma pasta de tarefas específica:
POST https://outlook.office.com/api/beta/me/taskfolders('{folder_id}')/tasks
No corpo da solicitação, forneça uma representação JSON da tarefa a ser criada.
Veja mais informações sobre a configuração de StartDateTime e DueDateTime.
Descubra como especificar um determinado fuso horário para todas as propriedades relacionadas à data na resposta.
Resposta
Código do status de sucesso: 201 Criado
Corpo de resposta: A tarefa criada.
Solicitação de amostra
O primeiro exemplo cria uma tarefa na pasta de tarefas especificada e expressa StartDateTime e DueDateTime no Horário Padrão do Pacífico (PST) no corpo da solicitação.
POST https://outlook.office.com/api/beta/me/taskfolders('AAMkADIyAAAhrbPXAAA=')/tasks
Content-Type: application/json
{
"Subject": "Shop for dinner",
"StartDateTime": {
"DateTime": "2016-04-23T18:00:00",
"TimeZone": "Pacific Standard Time"
},
"DueDateTime": {
"DateTime": "2016-04-25T13:00:00",
"TimeZone": "Pacific Standard Time"
}
}
Resposta de amostra
O método POST ignora a parte da hora no corpo da solicitação e assume que a hora seja sempre meia-noite no fuso horário especificado (PST). Em seguida, por padrão, o método POST converte e mostra todas as propriedades relacionadas à data em UTC na resposta.
Status code: 201 Created
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/TaskFolders('AAMkADIyAAAhrbPXAAA%3D')/Tasks/$entity",
"@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Tasks('AAMkADIyAAAhrb_PAAA=')",
"@odata.etag": "W/\"hmM7Eb/jgEec8l3+gkJEawAAIbAOlw==\"",
"Id": "AAMkADIyAAAhrb_PAAA=",
"CreatedDateTime": "2016-04-22T05:44:01.2012012Z",
"LastModifiedDateTime": "2016-04-22T05:44:02.9980882Z",
"ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIOJMxw==",
"Categories": [ ],
"AssignedTo": null,
"Body": {
"ContentType": "Text",
"Content": ""
},
"CompletedDateTime": null,
"DueDateTime": {
"DateTime": "2016-04-25T07:00:00.0000000",
"TimeZone": "UTC"
},
"HasAttachments":false,
"Importance": "Normal",
"IsReminderOn": false,
"Owner": "Administrator",
"ParentFolderId": "AQMkADA1MTkAAAAIBEgAAAA==",
"Recurrence": null,
"ReminderDateTime": null,
"Sensitivity": "Normal",
"StartDateTime": {
"DateTime": "2016-04-23T07:00:00.0000000",
"TimeZone": "UTC"
},
"Status": "NotStarted",
"Subject": "Shop for dinner"
}
Solicitação de amostra
Para mostrar como o cabeçalho Prefer: outlook.timezone
funciona, o próximo exemplo cria uma tarefa, expressa StartDateTime e DueDateTime no Horário Padrão do Leste (EST) e inclui um Prefer
cabeçalho para o Horário Padrão do Pacífico (PST).
POST https://outlook.office.com/api/beta/me/tasks HTTP/1.1
Content-Type: application/json
Prefer: outlook.timezone="Pacific Standard Time"
{
"Subject": "Shop for children's weekend",
"StartDateTime": {
"DateTime": "2016-05-03T09:00:00",
"TimeZone": "Eastern Standard Time"
},
"DueDateTime": {
"DateTime": "2016-05-05T16:00:00",
"TimeZone": "Eastern Standard Time"
}
}
Resposta de amostra
Assim como no último exemplo, o método POST ignora a parte da hora de StartDateTime e DueDateTime no corpo da solicitação e assume que a hora sempre seja meia-noite no fuso horário especificado (EST).
Como o cabeçalho Prefer
especifica PST, o método POST expressa todas as propriedades relacionadas à data na resposta em PST. Em particular, para as propriedades StartDateTime e DueDateTime, o método POST converte meia-noite em EST para PST e os retorna em PST na resposta.
Status code: 201 Created
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Tasks/$entity",
"@odata.id": "https://outlook.office.com/api/beta/Users('86b6ceaf-57f7-4278-97c4-4da0a97f6cdb@70559e59-b378-49ea-8e53-07a3a3d27f5b')/Tasks('AAMkADA1MHgwAAA=')",
"@odata.etag": "W/\"1/KC9Vmu40G3DwB6Lgs7MAAAIW9XXA==\"",
"Id": "AAMkADA1MHgwAAA=",
"CreatedDateTime": "2016-04-22T15:19:18.9526004-07:00",
"LastModifiedDateTime": "2016-04-22T15:19:19.015101-07:00",
"ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIW9XXA==",
"Categories": [
],
"AssignedTo": null,
"Body": {
"ContentType": "Text",
"Content": ""
},
"CompletedDateTime": null,
"DueDateTime": {
"DateTime": "2016-05-04T21:00:00.0000000",
"TimeZone": "Pacific Standard Time"
},
"HasAttachments":false,
"Importance": "Normal",
"IsReminderOn": false,
"Owner": "Administrator",
"ParentFolderId": "AQMkADA1MTEgAAAA==",
"Recurrence": null,
"ReminderDateTime": null,
"Sensitivity": "Normal",
"StartDateTime": {
"DateTime": "2016-05-02T21:00:00.0000000",
"TimeZone": "Pacific Standard Time"
},
"Status": "NotStarted",
"Subject": "Shop for children's weekend"
}
Obter tarefas
Obter todas as tarefas
Escopo mínimo necessário
Obter várias tarefas.
Você pode obter todas as tarefas na caixa de correio do usuário conectado.
GET https://outlook.office.com/api/beta/me/tasks
Ou você pode obter todas as tarefas em uma pasta específica:
GET https://outlook.office.com/api/beta/me/taskfolders('{folder_id}')/tasks
Se houver mais de um grupo de tarefas e você quiser obter todas as tarefas em um grupo de tarefas específico, primeiro obtenha todas as pastas de tarefas nesse grupo de tarefase, em seguida, obtenha as tarefas em cada uma dessas pastas de tarefas.
Resposta
Código de status de sucesso: 200 OK
Corpo de resposta: Uma coleção de tarefas
Por padrão, as propriedades relacionadas à data na resposta são expressas em UTC. Descubra como especificar um determinado fuso horário para todas as propriedades relacionadas à data na resposta.
Solicitação de amostra
O exemplo a seguir obtém todas as tarefas na caixa de correio do usuário.
GET https://outlook.office.com/api/beta/me/tasks
Resposta de amostra
Status code: 200 OK
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Tasks",
"value": [
{
"@odata.id": "https://outlook.office.com/api/beta/Users('86b6ceaf-57f7-4278-97c4-4da0a97f6cdb@70559e59-b378-49ea-8e53-07a3a3d27f5b')/Tasks('AAMkADA1MTrfAAA=')",
"@odata.etag": "W/\"1/KC9Vmu40G3DwB6Lgs7MAAAIOJMxw==\"",
"Id": "AAMkADA1MTrfAAA=",
"CreatedDateTime": "2016-04-22T05:44:01.2012012Z",
"LastModifiedDateTime": "2016-04-22T05:44:02.9980882Z",
"ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIOJMxw==",
"Categories": [ ],
"AssignedTo": null,
"Body": {
"ContentType": "Text",
"Content": ""
},
"CompletedDateTime": null,
"DueDateTime": {
"DateTime": "2016-04-25T07:00:00.0000000",
"TimeZone": "UTC"
},
"HasAttachments":false,
"Importance": "Normal",
"IsReminderOn": false,
"Owner": "Administrator",
"ParentFolderId": "AQMkADA1MTBEgAAAA==",
"Recurrence": null,
"ReminderDateTime": null,
"Sensitivity": "Normal",
"StartDateTime": {
"DateTime": "2016-04-23T07:00:00.0000000",
"TimeZone": "UTC"
},
"Status": "NotStarted",
"Subject": "Shop for dinner"
},
{
"@odata.id": "https://outlook.office.com/api/beta/Users('86b6ceaf-57f7-4278-97c4-4da0a97f6cdb@70559e59-b378-49ea-8e53-07a3a3d27f5b')/Tasks('AAMkADA1MTrgAAA=')",
"@odata.etag": "W/\"1/KC9Vmu40G3DwB6Lgs7MAAAIOJMyQ==\"",
"Id": "AAMkADA1MTrgAAA=",
"CreatedDateTime": "2016-04-22T06:03:35.9279794Z",
"LastModifiedDateTime": "2016-04-22T06:03:35.9436052Z",
"ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIOJMyQ==",
"Categories": [ ],
"AssignedTo": null,
"Body": {
"ContentType": "Text",
"Content": ""
},
"CompletedDateTime": null,
"DueDateTime": {
"DateTime": "2016-04-27T04:00:00.0000000",
"TimeZone": "UTC"
},
"HasAttachments":false,
"Importance": "Normal",
"IsReminderOn": false,
"Owner": "Administrator",
"ParentFolderId": "AQMkADA1MTBEgAAAA==",
"Recurrence": null,
"ReminderDateTime": null,
"Sensitivity": "Normal",
"StartDateTime": {
"DateTime": "2016-04-26T04:00:00.0000000",
"TimeZone": "UTC"
},
"Status": "NotStarted",
"Subject": "Shop for dinner"
}
]
}
Obter uma tarefa
Escopo mínimo necessário
Obter uma tarefa específica.
GET https://outlook.office.com/api/beta/me/tasks('{task_id}')
Resposta
Código de status de sucesso: 200 OK
Corpo de resposta: A tarefa solicitada.
Por padrão, as propriedades relacionadas à data na resposta são expressas em UTC. Descubra como especificar um determinado fuso horário para todas as propriedades relacionadas à data na resposta.
Solicitação de amostra
GET https://outlook.office.com/api/beta/me/tasks('AAMkADA1MTrgAAA=')
Resposta de amostra
Status code: 200 OK
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Tasks/$entity",
"@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Tasks('AAMkADA1MTrgAAA=')",
"@odata.etag": "W/\"hmM7Eb/jgEec8l3+gkJEawAAIa/+kw==\"",
"Id": "AAMkADA1MTrgAAA=",
"CreatedDateTime": "2016-04-22T06:03:35.9279794Z",
"LastModifiedDateTime": "2016-04-22T06:03:35.9436052Z",
"ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIOJMyQ==",
"Categories": [ ],
"AssignedTo": null,
"Body": {
"ContentType": "Text",
"Content": ""
},
"CompletedDateTime": null,
"DueDateTime": {
"DateTime": "2016-04-27T04:00:00.0000000",
"TimeZone": "UTC"
},
"HasAttachments":false,
"Importance": "Normal",
"IsReminderOn": false,
"Owner": "Administrator",
"ParentFolderId": "AQMkADA1MTBEgAAAA==",
"Recurrence": null,
"ReminderDateTime": null,
"Sensitivity": "Normal",
"StartDateTime": {
"DateTime": "2016-04-26T04:00:00.0000000",
"TimeZone": "UTC"
},
"Status": "NotStarted",
"Subject": "Shop for dinner"
}
Atualizar tarefas
Escopo mínimo necessário
Altere as propriedades graváveis de uma tarefa.
PATCH https://outlook.office.com/api/beta/me/tasks/{task_id}
No corpo da solicitação, forneça uma representação JSON das propriedades graváveis a serem atualizadas na tarefa.
Veja mais informações sobre a configuração de StartDateTime e DueDateTime.
A propriedade CompletedDateTime pode ser definida pela ação Concluir, ou explicitamente por uma operação PATCH. Se você usar PATCH para definir CompletedDateTime, certifique-se de definir o Status para Completed
também.
Por padrão, as propriedades relacionadas à data na resposta são expressas em UTC. Descubra como especificar um determinado fuso horário para todas as propriedades relacionadas à data na resposta.
Resposta
Código de status de sucesso: 200 OK
Corpo de resposta: A tarefa atualizada.
Solicitação de amostra
O exemplo a seguir modifica DueDateTime e usa o cabeçalho Prefer: outlook.timezone
para especificar as propriedades relacionadas à data a serem expressas no Horário Padrão do Leste (EST) na resposta.
PATCH https://outlook.office.com/api/beta/me/tasks('AAMkADA1MTHgwAAA=')
Prefer: outlook.timezone="Eastern Standard Time"
Content-Type: application/json
{
"DueDateTime": {
"DateTime": "2016-05-06T16:00:00",
"TimeZone": "Eastern Standard Time"
}
}
Resposta de amostra
Status code: 200 OK
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Tasks/$entity",
"@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Tasks('AAMkADA1MTHgwAAA=')",
"@odata.etag": "W/\"hmM7Eb/jgEec8l3+gkJEawAAIa/+lg==\"",
"Id": "AAMkADA1MTHgwAAA=",
"CreatedDateTime": "2016-04-22T18:19:18.9526004-04:00",
"LastModifiedDateTime": "2016-04-22T18:38:20.5541528-04:00",
"ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIW9XXg==",
"Categories": [
],
"AssignedTo": null,
"Body": {
"ContentType": "Text",
"Content": ""
},
"CompletedDateTime": null,
"DueDateTime": {
"DateTime": "2016-05-06T00:00:00.0000000",
"TimeZone": "Eastern Standard Time"
},
"HasAttachments":false,
"Importance": "Normal",
"IsReminderOn": false,
"Owner": "Administrator",
"ParentFolderId": "AQMkADA1MTIBEgAAAA==",
"Recurrence": null,
"ReminderDateTime": null,
"Sensitivity": "Normal",
"StartDateTime": {
"DateTime": "2016-05-03T00:00:00.0000000",
"TimeZone": "Eastern Standard Time"
},
"Status": "NotStarted",
"Subject": "Shop for children's weekend"
}
Excluir tarefas
Escopo mínimo necessário
Exclua a tarefa especificada na caixa de correio do usuário.
DELETE https://outlook.office.com/api/beta/me/tasks('{task_id}')
Resposta
Código de status de sucesso: 204 Sem Conteúdo
Corpo de Resposta: Nenhum
Solicitação de amostra
DELETE https://outlook.office365.com/api/beta/me/tasks('AAMkADIyAAAhrb_QAAA=')
Resposta de amostra
Status code: 204 No Content
Tarefas concluídas
Escopo mínimo necessário
Conclua uma tarefa e defina a propriedade CompletedDateTime para a data atual e a propriedade Status para Completed
.
POST https://outlook.office.com/api/beta/me/tasks('{task_id}')/complete
Observação
CompletedDateTime representa a data em que a tarefa é finalizada. A parte da hora de CompletedDateTime é definida como meia-noite UTC por padrão.
Um aplicativo pode especificar um fuso horário personalizado em um Prefer
cabeçalho de solicitação. O seguinte é um exemplo para definir CompletedDateTime para o fuso horário do Horário Padrão do Pacífico (PST):
Prefer: outlook.timezone="Pacific Standard Time"
Esse cabeçalho de solicitação define todas as propriedades relacionadas à data na resposta para o fuso horário especificado.
Resposta
Código de status de sucesso: 200 OK
Corpo de resposta: A tarefa concluída em uma coleção de tarefas. Se você estiver concluindo uma tarefa em uma série recorrente, a coleção de tarefas conterá a tarefa concluída na série e a próxima tarefa na série.
Solicitação de amostra
O exemplo a seguir marca a tarefa especificada como concluída. Como especifica o Horário Padrão do Pacífico (PST) no cabeçalho Prefer: outlook.timezone
, CompletedDateTime e outras propriedades relacionadas a datas na resposta são expressas em PST.
POST https://outlook.office.com/api/beta/me/tasks('AAMkADA1MT15rfAAA=')/complete
Prefer: outlook.timezone="Pacific Standard Time"
Resposta de amostra
Status code: 200 OK
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Tasks",
"value": [
{
"@odata.id": "https://outlook.office365.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Tasks('AAMkADA1MT15rfAAA=')",
"@odata.etag": "W/\"hmM7Eb/jgEec8l3+gkJEawAAIa/+lw==\"",
"Id": "AAMkADA1MT15rfAAA=",
"CreatedDateTime": "2016-04-21T22:44:01.2012012-07:00",
"LastModifiedDateTime": "2016-04-22T19:28:38.5300447-07:00",
"ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIW9XYQ==",
"Categories": [
],
"AssignedTo": null,
"Body": {
"ContentType": "Text",
"Content": ""
},
"CompletedDateTime": {
"DateTime": "2016-04-22T00:00:00.0000000",
"TimeZone": "Pacific Standard Time"
},
"DueDateTime": {
"DateTime": "2016-04-25T00:00:00.0000000",
"TimeZone": "Pacific Standard Time"
},
"HasAttachments":false,
"Importance": "Normal",
"IsReminderOn": false,
"Owner": "Administrator",
"ParentFolderId": "AQMkADA1MTIBEgAAAA==",
"Recurrence": null,
"ReminderDateTime": null,
"Sensitivity": "Normal",
"StartDateTime": {
"DateTime": "2016-04-21T00:00:00.0000000",
"TimeZone": "Pacific Standard Time"
},
"Status": "Completed",
"Subject": "Shop for dinner"
}
]
}
Sincronizar tarefas ou pastas de tarefas
Escopo mínimo necessário
Você pode sincronizar tarefas em uma pasta de tarefas ou pastas de tarefas na caixa de correio de um usuário. Sincronizar tarefas é uma operação por pasta, por exemplo, você pode sincronizar todas as tarefas em sua pasta de tarefas padrão Tasks
. Para sincronizar as mensagens em uma hierarquia de pastas, você precisa sincronizar cada pasta individualmente. Os processos para sincronizar tarefas ou pastas de tarefas são semelhantes, normalmente exigindo uma rodada de duas ou mais solicitações de sincronização, cada uma das quais é uma chamada GET.
Use o método GET da mesma maneira que você obteve tarefas em uma pastaou obteve pastas de tarefas em uma caixa de correio, a diferença é que neste caso você inclui determinados cabeçalhos de solicitação, e deltaToken ou um skipToken quando apropriado.
Cabeçalhos de solicitação
- Você deve especificar o cabeçalho
Prefer: odata.track-changes
em todas as solicitações de sincronização, exceto aquelas que incluemskipToken
que é retornado de uma solicitação de sincronização anterior. Na primeira resposta, procure o cabeçalho Preference-Applied: odata.track-changes para confirmar que o recurso suporta a sincronização antes de continuar. (Mais informações sobre umskipToken
no exemplo de dados de segunda resposta para tarefas, se você estiver sincronizando tarefas, ou exemplo de dados de segunda resposta para pastas de tarefas, se você estiver sincronizando pastas de tarefas.) - Você pode especificar o cabeçalho
Prefer: odata.maxpagesize={x}
para indicar o número máximo de tarefas (ou pastas de tarefas, dependendo de qual você está sincronizando) que cada solicitação de sincronização retorna.
Aqui está uma típica rodada de mensagens de sincronização:
Faça a solicitação GET inicial com o cabeçalho obrigatório Prefer: odata.track-changes. A resposta inicial a uma solicitação de sincronização sempre retorna um deltaToken. (A segunda solicitação GET e as solicitações seguintes diferem da primeira solicitação GET, incluindo um deltaToken ou um skipToken recebido em uma resposta anterior.)
Se a primeira resposta retornar o cabeçalho Preference-Applied: odata.track-changes, você poderá prosseguir com a sincronização do recurso.
Faça uma segunda solicitação GET. Especifique o cabeçalho Prefiro: odata.track-changes e o deltaToken retornado da primeira GET para determinar se há alguma instância adicional do recurso para sincronizar. A segunda solicitação retornará instâncias adicionais e um skipToken, se houver mais instâncias disponíveis, ou um deltaToken, se a última instância foi sincronizada, se esse for o caso você pode parar.
Continue a sincronização enviando uma chamada GET e incluindo um skipToken retornado da chamada anterior. Pare quando você obtiver uma resposta final que contenha o cabeçalho @odata.deltaLink com um deltaToken novamente, indicando que a sincronização está concluída.
Veja a sintaxe das chamadas iniciais e seguintes em uma série de sincronização.
Para sincronizar tarefas em uma pasta de tarefas
Solicitação inicial:
GET https://outlook.office.com/api/beta/me/TaskFolders('{folder_id}')/Tasks
Segunda ou primeira solicitação de uma rodada seguinte:
GET https://outlook.office.com/api/beta/me/TaskFolders('{folder_id}')/Tasks/?$deltatoken={delta_token}
Terceira solicitação ou solicitação subsequente na mesma rodada; pare quando você receber uma resposta que contenha um cabeçalho @odata.deltaLink
com um deltaToken
novamente:
GET https://outlook.office.com/api/beta/me/TaskFolders('{folder_id}')/Tasks/?$skiptoken={skip_token}
Para sincronizar pastas de tarefas em uma caixa de correio
Solicitação inicial:
GET https://outlook.office.com/api/beta/me/TaskFolders
Segunda ou primeira solicitação de uma rodada seguinte:
GET https://outlook.office.com/api/beta/me/TaskFolders/?$deltatoken={delta_token}
Terceira solicitação ou solicitação subsequente na mesma rodada; pare quando você receber uma resposta que contenha um cabeçalho @odata.deltaLink
com um deltaToken
novamente:
GET https://outlook.office.com/api/beta/me/TaskFolders/?$skiptoken={skip_token}
Parâmetros
Parâmetro | Tipo | Descrição |
---|---|---|
Parâmetros do cabeçalho | ||
Preferir | odata.track-changes | Indica que a solicitação é uma solicitação de sincronização. Necessário para as duas primeiras solicitações GET em uma rodada. |
Preferir | odata.maxpagesize | Define o número de mensagens a serem retornadas em cada resposta. Opcional. |
Parâmetros de URL | ||
deltaToken | sequência de caracteres | A sequência de caracteres deltaToken retornada como parte do valor de @odata.deltaLink na resposta de sincronização anterior. |
skipToken | sequência de caracteres | A sequência de caracteres skipToken retornada como parte do valor de @odata.nextLink na resposta de sincronização anterior. |
Observação
- Ao especificar
Prefer: odata.track-changes
na solicitação inicial, se a resposta oferecer suporte à sincronização, a resposta incluiriaPreference-applied: odata.track-changes
no cabeçalho. - Se você tentar sincronizar um recurso que não é suportado ou se essa não for a solicitação de sincronização inicial, você não verá o cabeçalho
Preference-applied
na resposta. - Para um melhor tempo de resposta, use o parâmetro de consulta $select para obter apenas as propriedades úteis para seu cenário.
- Não é possível usar o
$filter
,$orderby
,$search
, e$top
parâmetros de consulta.
Corpo da resposta
Se for sincronizar tarefas: os objetos de Tarefa solicitados em uma coleção.
Se sincronizar pastas de tarefas: os objetos TaskFolder solicitados em uma coleção.
O número de objetos depende do valor definido no cabeçalho de solicitação Prefer: odata.maxpagesize
.
Exemplo
A seguir, mostramos dois conjuntos de exemplos:
Cada exemplo mostra as solicitações de sincronização iniciais e secundárias.
- Cada solicitação especifica
Prefer: odata.maxpagesize=1
para retornar apenas um objeto (tarefa ou pasta de tarefas, respectivamente) por vez. - A resposta inicial retorna um objeto sincronizado, um
deltaLink
edeltaToken
. - A segunda solicitação usa
deltatoken
. A segunda resposta retorna um objeto sincronizado, umnextLink
eskipToken
.
Iterar através do processo de sincronização e usar na próxima chamada GET o skipToken
retornado da solicitação de sincronização anterior até você receber uma resposta de sincronização que contenha deltaLink
e deltaToken
como abaixo:
"@odata.deltaLink": “https://outlook.office.com/api/beta/me/TaskFolders('AQMkAGMw80AAAIBEgAAAA==')/Tasks/?%24deltaToken=294a8f04cc0345c5ae093d484629e186”
Quando isso acontece, essa rodada de sincronização é concluída. Salve o deltaToken
para a próxima série de sincronização.
Exemplo de solicitação inicial (sincronizar tarefas)
GET https://outlook.office.com/api/beta/me/TaskFolders('AQMkAGMwAAAIBEgAAAA==')/Tasks HTTP/1.1
Prefer: odata.maxpagesize=1
Prefer: odata.track-changes
Exemplo de dados de resposta inicial (sincronizar tarefas)
HTTP/1.1 200 OK
Preference-Applied: odata.track-changes
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#me/TaskFolders('AQMkAGMwAAAIBEgAAAA%3D%3D')/Tasks",
"value": [
{
"@odata.id": "https://outlook.office.com/api/beta/Users('47ec4680-f443-4f9c-a3e5-f7660f0aceae@b4ffe6c0-e717-4104-acd1-e9dfe38ff5f9')/Tasks('AAMkAGMwQsKVevNAAAG1VNmAAA=')",
"@odata.etag": "W/\"3JfzyLwJe0mPNcULClXrzQAABtYBDw==\"",
"Id": "AAMkAGMwQsKVevNAAAG1VNmAAA=",
"CreatedDateTime": "2016-02-29T20:51:25.2226052Z",
"LastModifiedDateTime": "2016-02-29T20:51:25.2538576Z",
"ChangeKey": "3JfzyLwJe0mPNcULClXrzQAABtYBDw==",
"Categories": [ ],
"AssignedTo": null,
"Body": {
"ContentType": "Text",
"Content": ""
},
"CompletedDateTime": null,
"DueDateTime": null,
"HasAttachments":false,
"Importance": "Normal",
"IsReminderOn": false,
"Owner": "Administrator",
"ParentFolderId": "AQMkAGMwAAAIBEgAAAA==",
"Recurrence": null,
"ReminderDateTime": null,
"Sensitivity": "Normal",
"StartDateTime": null,
"Status": "NotStarted",
"Subject": "another task"
}
],
"@odata.deltaLink": "https://outlook.office.com/api/beta/me/TaskFolders('AQMkAGMwAAAIBEgAAAA==')/Tasks/?%24deltatoken=175e2e04482e431ea96e89145c212f8c"
}
Exemplo de segunda solicitação (sincronizar tarefas)
GET https://outlook.office.com/api/beta/me/TaskFolders('AQMkAGMwAAAIBEgAAAA==')/Tasks/?%24deltatoken=175e2e04482e431ea96e89145c212f8c HTTP/1.1
Prefer: odata.maxpagesize=1
Prefer: odata.track-changes
Exemplo de dados de segunda resposta (sincronizar tarefas)
HTTP/1.1 200 OK
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#me/TaskFolders('AQMkAGMwAAAIBEgAAAA%3D%3D')/Tasks/$delta",
"value": [
{
"@odata.id": "https://outlook.office.com/api/beta/Users('47ec4680-f443-4f9c-a3e5-f7660f0aceae@b4ffe6c0-e717-4104-acd1-e9dfe38ff5f9')/Tasks('AAMkAGMwQsKVevNAAAG1VNlAAA=')",
"@odata.etag": "W/\"3JfzyLwJe0mPNcULClXrzQAABtYBDQ==\"",
"Id": "AAMkAGMwQsKVevNAAAG1VNlAAA=",
"CreatedDateTime": "2016-02-29T20:51:02.5955351Z",
"LastModifiedDateTime": "2016-02-29T20:51:03.9703679Z",
"ChangeKey": "3JfzyLwJe0mPNcULClXrzQAABtYBDQ==",
"Categories": [ ],
"AssignedTo": null,
"Body": {
"ContentType": "Text",
"Content": ""
},
"CompletedDateTime": null,
"DueDateTimeTime": null,
"HasAttachments":false,
"Importance": "Normal",
"IsReminderOn": false,
"Owner": "Administrator",
"ParentFolderId": "AQMkAGMwAAAIBEgAAAA==",
"Recurrence": null,
"ReminderDateTime": null,
"Sensitivity": "Normal",
"StartDateTime": null,
"Status": "NotStarted",
"Subject": "another task"
}
],
"@odata.nextLink": "https://outlook.office.com/api/beta/me/TaskFolders('AQMkAGMw80AAAIBEgAAAA==')/Tasks/?%24skipToken=0fbce2031e844a2f9d13d8bee5ebe2c6"
}
Continue sincronizando tarefas e use na próxima chamada GET o skiptoken
retornado em @odata.nextLink
da resposta anterior, até que a resposta final contenha um @odata.deltaLink
e um deltaToken
. Salve o deltaToken
para a próxima série de sincronização.
Exemplo de solicitação inicial (sincronizar pastas de tarefas)
GET https://outlook.office.com/api/beta/me/TaskFolders HTTP/1.1
Prefer: odata.maxpagesize=1
Prefer: odata.track-changes
Exemplo de dados de resposta inicial (sincronizar pastas de tarefas)
HTTP/1.1 200 OK
Preference-Applied: odata.track-changes
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#me/TaskFolders",
"value": [
{
"@odata.id": "https://outlook.office.com/api/beta/Users('5bcd7334-a6c5-4f95-a370-319e077dfe10@e288a0d0-ab74-431b-9699-a3721aabb08f')/TaskFolders('AAMkAGJiAAAAAAESAAA=')",
"Id": "AAMkAGJiAAAAAAESAAA=",
"ChangeKey": "PG2a661l00Cy9qH3YxmDfwAAAAAAPA==",
"Name": "Tasks",
"IsDefaultFolder":true,
"ParentGroupKey": "0006f0b7-0000-0000-c000-000000000046"
}
],
"@odata.deltaLink": "https://outlook.office.com/api/beta/me/TaskFolders/?%24deltatoken=OyZKBDxtmuutZdNAsvah92MZg38AAAAAZwkBAAAA"
}
Exemplo de segunda solicitação (sincronizar pastas de tarefas)
GET https://outlook.office.com/api/beta/me/TaskFolders/?%24deltatoken=OyZKBDxtmuutZdNAsvah92MZg38AAAAAZwkBAAAA HTTP/1.1
Prefer: odata.maxpagesize=1
Prefer: odata.track-changes
Exemplo de dados de segunda resposta (sincronizar pastas de tarefas)
HTTP/1.1 200 OK
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#me/TaskFolders/$delta",
"value": [
{
"@odata.id": "https://outlook.office.com/api/beta/Users('5bcd7334-a6c5-4f95-a370-319e077dfe10@e288a0d0-ab74-431b-9699-a3721aabb08f')/TaskFolders('AAMkAGI5AAAunDbWAAA=')",
"Id": "AAMkAGI5AAAunDbWAAA=",
"ChangeKey": "PmebZ1wYAUaTmrKkvU9LIQAALqEkaw==",
"Name": "Bingo",
"IsDefaultFolder":false,
"ParentGroupKey": "db0823f2-93bd-4db6-8038-98bbc5f39a45"
}
],
"@odata.nextLink": "https://outlook.office.com/api/beta/me/TaskFolders/?%24skipToken=x_zCAz5nm2dcGAFGk5qypL1PSyEAAC6cRncCAAAA"
}
Continue sincronizando tarefas e use na próxima chamada GET o skiptoken
retornado em @odata.nextLink
da resposta anterior, até que a resposta final contenha um @odata.deltaLink
e um deltaToken
. Neste exemplo, a terceira solicitação retorna um deltaToken
e a sincronização está concluída para esta rodada.
Exemplo de terceira solicitação (sincronizar pastas de tarefas)
GET https://outlook.office.com/api/beta/me/TaskFolders/?%24skipToken=x_zCAz5nm2dcGAFGk5qypL1PSyEAAC6cRncCAAAA HTTP/1.1
Prefer: odata.maxpagesize=1
Exemplo de dados da terceira resposta (sincronizar pastas de tarefas)
HTTP/1.1 200 OK
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#me/TaskFolders/$delta",
"value": [
{
"@odata.id": "https://outlook.office.com/api/beta/Users('5bcd7334-a6c5-4f95-a370-319e077dfe10@e288a0d0-ab74-431b-9699-a3721aabb08f')/TaskFolders('AAMkAGI5AAAunDbVAAA=')",
"Id": "AAMkAGI5AAAunDbVAAA=",
"ChangeKey": "PmebZ1wYAUaTmrKkvU9LIQAALqEkZA==",
"Name":"Volunteer",
"IsDefaultFolder":false,
"ParentGroupKey": "db0823f2-93bd-4db6-8038-98bbc5f39a45"
}
],
"@odata.deltaLink":"https://outlook.office.com/api/beta/me/taskfolders/?%24deltaToken=x_zCBD5nm2dcGAFGk5qypL1PSyEAAC6cRncEAAAA"
}
Obter anexos
Obter uma coleção de anexos
Escopo mínimo necessário
Obter os anexos de uma tarefa específica.
GET https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments
Tipo de resposta
Uma coleção de anexos que pode ser do tipo FileAttachment ou ItemAttachment ou ReferenceAttachment.
Solicitação de amostra
O exemplo a seguir retorna todos os anexos da tarefa especificada, que incluem um arquivo, um item de evento e um link para uma imagem no OneDrive.
GET https://outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments
Resposta de amostra
Código de status: 200
{
"@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks('AAMkADNkNS3qGAAA%3D')/Attachments",
"value":[
{
"@odata.type":"#Microsoft.OutlookServices.FileAttachment",
"@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkNS3qGAAA=')/Attachments('AAMkADNkNRT6JOBs=')",
"Id":"AAMkADNkNRT6JOBs=",
"LastModifiedDateTime":"2016-11-22T02:24:21Z",
"Name":"Holiday notice",
"ContentType":"application/octet-stream",
"Size":244,
"IsInline":false,
"ContentId":null,
"ContentLocation":null,
"ContentBytes":"bWFjIGFuZCBjaGVlc2U="
},
{
"@odata.type":"#Microsoft.OutlookServices.ItemAttachment",
"@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkNS3qGAAA=')/Attachments('AAMkADNkNJVnQIe9r0=')",
"Id":"AAMkADNkNJVnQIe9r0=",
"LastModifiedDateTime":"2016-12-01T22:27:13Z",
"Name":"Holiday event",
"ContentType":null,
"Size":2473,
"IsInline":false
},
{
"@odata.type":"#Microsoft.OutlookServices.ReferenceAttachment",
"@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkNS3qGAAA=')/Attachments('AAMkADNkNLiMhtEYg=')",
"Id":"AAMkADNkNLiMhtEYg=",
"LastModifiedDateTime":"2016-12-07T21:14:05Z",
"Name":"Hydrangea picture",
"ContentType":null,
"Size":850,
"IsInline":true,
"SourceUrl":"https://contoso-my.sharepoint.com/personal/admin_contoso_onmicrosoft_com/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments%2FHydrangeas%2Ejpg&parent=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments",
"ProviderType":"OneDriveBusiness",
"ThumbnailUrl":null,
"PreviewUrl":null,
"Permission":"Edit",
"IsFolder":false
}
]
}
Obter um anexo
Escopo mínimo necessário
Obter um anexo em uma tarefa específica.
GET https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments('{attachment_id}')
Tipo de resposta
Oanexo de arquivo, anexo de item ou anexo de referência solicitado.
Solicitação de amostra (anexo de arquivo)
O exemplo a seguir obtém um anexo específico em uma tarefa, que é um anexo de arquivo.
GET https://outlook.office.com/api/beta/me/tasks('AAMkADNkNS3qGAAA=')/attachments('AAMkADNkNJVnQIe9r0=')
Resposta de amostra
Código de status: 200
{
"@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks('AAMkADNkNS3qGAAA%3D')/Attachments/$entity",
"@odata.type":"#Microsoft.OutlookServices.FileAttachment",
"@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkNS3qGAAA=')/Attachments('AAMkADNkNRT6JOBs=')",
"Id":"AAMkADNkNRT6JOBs=",
"LastModifiedDateTime":"2016-11-22T02:24:21Z",
"Name":"Holiday notice",
"ContentType":"application/octet-stream",
"Size":244,
"IsInline":false,
"ContentId":null,
"ContentLocation":null,
"ContentBytes":"bWFjIGFuZCBjaGVlc2U="
}
Solicitação de amostra (anexo de item)
O exemplo a seguir obtém um anexo específico em uma tarefa, que é um item de evento.
GET https://outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments('AAMkADNkNJVnQIe9r0=')
Resposta de amostra
Código de status: 200
{
"@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks('AAMkADNkNS3qGAAA%3D')/Attachments/$entity",
"@odata.type":"#Microsoft.OutlookServices.ItemAttachment",
"@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkNS3qGAAA=')/Attachments('AAMkADNkNJVnQIe9r0=')",
"Id":"AAMkADNkNJVnQIe9r0=",
"LastModifiedDateTime":"2016-12-01T22:27:13Z",
"Name":"Holiday event",
"ContentType":null,
"Size":2473,
"IsInline":false
}
Solicitação de amostra (anexo de referência)
O exemplo a seguir obtém um anexo específico em uma tarefa, que é um anexo de referência.
GET https://outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments('AAMkADNkNQG1Lnn5-o=')
Resposta de amostra
Código de status: 200
{
"@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments/$entity",
"@odata.type":"#Microsoft.OutlookServices.ReferenceAttachment",
"@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkN3qGAAA=')/Attachments('AAMkADNkNQG1Lnn5-o=')",
"Id":"AAMkADNkNQG1Lnn5-o=",
"LastModifiedDateTime":"2016-11-22T02:32:44Z",
"Name":"Hydrangea picture",
"ContentType":null,
"Size":850,
"IsInline":true,
"SourceUrl":"https://contoso-my.sharepoint.com/personal/admin_contoso_onmicrosoft_com/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments%2FHydrangeas%2Ejpg&parent=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments",
"ProviderType":"OneDriveBusiness",
"ThumbnailUrl":null,
"PreviewUrl":null,
"Permission":"Edit",
"IsFolder":false
}
Solicitação de amostra ($expandir em anexos)
O exemplo a seguir obtém e expande o anexo de arquivo em linha com as propriedades da tarefa.
GET https://outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')?$expand=attachments
Resposta de amostra
Código de status: 200
{
"@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks/$entity",
"@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkN3qGAAA=')",
"@odata.etag":"W/\"EZ9r3czxY0m2jz8c45czkwAAC052gQ==\"",
"Id":"AAMkADNkN3qGAAA=",
"CreatedDateTime":"2016-11-22T01:27:31.3918881Z",
"LastModifiedDateTime":"2016-11-22T02:40:48.1705747Z",
"ChangeKey":"EZ9r3czxY0m2jz8c45czkwAAC052gQ==",
"Categories":[
],
"AssignedTo":null,
"Body":{
"ContentType":"HTML",
"Content":"<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n<meta content=\"text/html; charset=iso-8859-1\">\r\n<style type=\"text/css\" style=\"display:none\">\r\n<!--\r\np\r\n\t{margin-top:0;\r\n\tmargin-bottom:0}\r\n-->\r\n</style>\r\n</head>\r\n<body dir=\"ltr\">\r\n<div id=\"divtagdefaultwrapper\" dir=\"ltr\" style=\"font-size:12pt; color:#000000; font-family:Calibri,Arial,Helvetica,sans-serif\">\r\n<p>Prepare for Thanksgiving gathering.<br>\r\n</p>\r\n</div>\r\n</body>\r\n</html>\r\n"
},
"CompletedDateTime":null,
"DueDateTime":{
"DateTime":"2016-11-24T08:00:00.0000000",
"TimeZone":"UTC"
},
"HasAttachments":true,
"Importance":"Normal",
"IsReminderOn":false,
"Owner":"Administrator",
"ParentFolderId":"AQMkADNkNAAAgESAAAA",
"Recurrence":null,
"ReminderDateTime":null,
"Sensitivity":"Normal",
"StartDateTime":{
"DateTime":"2016-11-22T08:00:00.0000000",
"TimeZone":"UTC"
},
"Status":"NotStarted",
"Subject":"Holiday prep",
"Attachments@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments",
"Attachments":[
{
"@odata.type":"#Microsoft.OutlookServices.FileAttachment",
"@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkN3qGAAA=')/Attachments('AAMkADNkNRT6JOBs=')",
"Id":"AAMkADNkNRT6JOBs=",
"LastModifiedDateTime":"2016-11-22T02:24:21Z",
"Name":"Holiday notice",
"ContentType":"application/octet-stream",
"Size":244,
"IsInline":false,
"ContentId":null,
"ContentLocation":null,
"ContentBytes":"bWFjIGFuZCBjaGVlc2U="
}
]
}
Adicionar anexos
Você pode adicionar um arquivo, um item (mensagem, evento ou contato) ou um link a um arquivo como um anexo a uma tarefa.
Adicionar um anexo de arquivo
Escopo mínimo necessário
Adicione um arquivo como anexo a uma tarefa.
POST https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments
Parâmetro obrigatório do corpo | Tipo | Descrição |
---|---|---|
@odata.type | sequência de caracteres | #Microsoft.OutlookServices.FileAttachment |
Nome | sequência de caracteres | O nome do anexo. |
ContentBytes | binário | O conteúdo do arquivo a ser anexado, na codificação base64. |
Tipo de resposta
O novo anexo de arquivo.
Solicitação de amostra
POST https://outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments
Content-Type: application/json
{
"@odata.type": "#Microsoft.OutlookServices.FileAttachment"",
"Name": "Holiday notice",
"ContentBytes": "bWFjIGFuZCBjaGVlc2U="
}
Resposta de amostra
Código do status: 201 Criado
{
"@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments/$entity",
"@odata.type":"#Microsoft.OutlookServices.FileAttachment",
"@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkN3qGAAA=')/Attachments('AAMkADNkNRT6JOBs=')",
"Id":"AAMkADNkNRT6JOBs=",
"LastModifiedDateTime":"2016-11-22T02:24:21Z",
"Name":"Holiday notice",
"ContentType":"application/octet-stream",
"Size":244,
"IsInline":false,
"ContentId":null,
"ContentLocation":null,
"ContentBytes":"bWFjIGFuZCBjaGVlc2U="
}
Adicionar um anexo do item
Escopo mínimo necessário
Adicione um item (mensagem, evento ou contato) como um anexo a uma tarefa.
POST https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments
Parâmetro obrigatório do corpo | Tipo | Descrição |
---|---|---|
@odata.type | sequência de caracteres | #Microsoft.OutlookServices.ItemAttachment |
Nome | sequência de caracteres | O nome do anexo. |
O nome do anexo. | Uma entidade Mensagem, Evento ou Contato. | O item a ser anexado. |
Tipo de resposta
O novo anexo de item.
Solicitação de amostra
POST https://outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments
Content-Type: application/json
{
"@odata.type": "#Microsoft.OutlookServices.ItemAttachment",
"Name": "Holiday event",
"Item": {
"@odata.type": "Microsoft.OutlookServices.Event",
"Subject": "Discuss gifts for children",
"Body": {
"ContentType": "HTML",
"Content": "Let's look for funding!"
},
"Start": {
"DateTime": "2016-12-02T18:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-12-02T19:00:00",
"TimeZone": "Pacific Standard Time"
}
}
}
Resposta de amostra
Código do status: 201 Criado
{
"@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments/$entity",
"@odata.type":"#Microsoft.OutlookServices.ItemAttachment",
"@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkN23qGAAA=')/Attachments('AAMkADNkN2Jp5JVnQIe9r0=')",
"Id":"AAMkADNkNJp5JVnQIe9r0=",
"LastModifiedDateTime":"2016-12-01T22:27:13Z",
"Name":"Holiday event",
"ContentType":null,
"Size":2473,
"IsInline":false
}
Adicione um anexo de referência
Escopo mínimo necessário
Adicione um link a um arquivo como um anexo de referência a uma tarefa.
POST https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments
Parâmetro obrigatório do corpo | Tipo | Descrição |
---|---|---|
@odata.type | Sequência de caracteres | #Microsoft.OutlookServices.ReferenceAttachment |
Nome | Sequência de caracteres | O nome de exibição do anexo. Obrigatório. |
SourceUrl | Sequência de caracteres | URL para obter o conteúdo do anexo. Se este for um URL para uma pasta, para que a pasta seja exibida corretamente no Outlook ou Outlook na Web, defina IsFolder como verdadeiro. Obrigatório. |
Especifique os parâmetros Name e SourceUrl e qualquer propriedade gravável do anexo de referência no corpo da solicitação.
Tipo de resposta
Solicitação de amostra
O exemplo a seguir adiciona um anexo de referência a uma tarefa existente. O anexo é um link para um arquivo do OneDrive for Business.
POST https://outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments
Content-Type: application/json
{
"@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
"Name": "Hydrangea picture",
"SourceUrl": "https://contoso-my.sharepoint.com/personal/admin_contoso_onmicrosoft_com/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments%2FHydrangeas%2Ejpg&parent=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments",
"ProviderType": "oneDriveBusiness",
"Permission": "Edit",
"IsFolder": "False"
}
Resposta de amostra
Código do status: 201 Criado
{
"@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments/$entity",
"@odata.type":"#Microsoft.OutlookServices.ReferenceAttachment",
"@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkN3qGAAA=')/Attachments('AAMkADNkNQG1Lnn5-o=')",
"Id":"AAMkADNkNQG1Lnn5-o=",
"LastModifiedDateTime":"2016-11-22T02:32:44Z",
"Name":"Hydrangea picture",
"ContentType":null,
"Size":850,
"IsInline":true,
"SourceUrl":"https://contoso-my.sharepoint.com/personal/admin_contoso_onmicrosoft_com/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments%2FHydrangeas%2Ejpg&parent=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments",
"ProviderType":"OneDriveBusiness",
"ThumbnailUrl":null,
"PreviewUrl":null,
"Permission":"Edit",
"IsFolder":false
}
Excluir anexos
Excluir um anexo de uma tarefa
Excluir um anexo de uma tarefa
Escopo mínimo necessário
Excluir o anexo especificado de uma tarefa. O anexo pode ser umanexo de arquivo, anexo de item ou anexo de referência.
DELETE https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments('{attachment_id}')
Solicitação de amostra
DELETE https:/outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments('AAMkADNkNQG1Lnn5-o=')
Resposta de amostra
Status code: 204
Criar pastas de tarefas
Escopo mínimo necessário
Criar uma pasta de tarefas.
Você pode criar uma pasta de tarefas no grupo de tarefas padrão (My Tasks
) da caixa de correio do usuário:
POST https://outlook.office.com/api/beta/me/taskfolders
Ou você pode criar uma pasta de tarefas em um grupo de tarefas especificado:
POST https://outlook.office.com/api/beta/me/taskgroups('{group_id}')/taskfolders
No corpo da solicitação, forneça uma representação JSON da TaskFolder a ser criada.
Resposta
Código do status de sucesso: 201 Criado
Corpo de resposta: A TaskFolder criada.
Solicitação de amostra
O exemplo a seguir cria uma pasta de tarefas chamada Volunteer
no grupo de tarefas padrão (My Tasks
) da caixa de correio do usuário.
POST https://outlook.office.com/api/beta/me/taskfolders
Content-Type: application/json
{
"Name": "Volunteer"
}
Resposta de amostra
Status code: 201
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/TaskFolders/$entity",
"@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAhrbPWAAA=')",
"Id": "AAMkADIyAAAhrbPWAAA=",
"ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAGig==",
"IsDefaultFolder": false,
"Name": "Volunteer",
"ParentGroupKey": "0006f0b7-0000-0000-c000-000000000046"
}
Solicitação de amostra
O próximo exemplo cria uma pasta de tarefas chamada Cooking
no grupo de tarefas especificado.
POST https://outlook.office.com/api/beta/me/taskgroups('AAMkADIyAAAhrbe-AAA')/taskfolders
Content-Type: application/json
{
"Name": "Cooking"
}
Resposta de amostra
Status code: 201
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/TaskGroups('AAMkADIyAAAhrbe-AAA%3D')/TaskFolders/$entity",
"@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAhrbPXAAA=')",
"Id": "AAMkADIyAAAhrbPXAAA=",
"ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAOlA==",
"IsDefaultFolder": false,
"Name": "Cooking",
"ParentGroupKey": "63d640cf-946f-4734-9c29-60dda7b76acb"
}
Obter pastas de tarefas
Escopo mínimo necessário
Obtenha várias pastas de tarefas.
Você pode obter todas as pastas de tarefas na caixa de correio do usuário:
GET https://outlook.office.com/api/beta/me/taskfolders
Ou você pode obter pastas de tarefas em um grupo de tarefas específico:
GET https://outlook.office365.com/api/beta/me/taskgroups('{group_id}')/taskfolders
Resposta
Código de status de sucesso: 200 OK
Corpo de resposta: Uma coleção de taskfolder.
Solicitação de amostra
O exemplo a seguir obtém todas as pastas de tarefas na caixa de correio do usuário.
GET https://outlook.office.com/api/beta/me/taskfolders
Resposta de amostra
Status code: 200 OK
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/TaskFolders",
"value": [
{
"@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAAABrJAAA=')",
"Id": "AAMkADIyAAAAABrJAAA=",
"ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAAAAeAA==",
"IsDefaultFolder": false,
"Name": "Monthly tasks",
"ParentGroupKey": "0006f0b7-0000-0000-c000-000000000046"
},
{
"@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAAAAESAAA=')",
"Id": "AAMkADIyAAAAAAESAAA=",
"ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAAAAAPA==",
"IsDefaultFolder": true,
"Name": "Tasks",
"ParentGroupKey": "0006f0b7-0000-0000-c000-000000000046"
}
]
}
O próximo exemplo obtém todas as pastas de tarefas no grupo de tarefas especificado.
GET https://outlook.office365.com/api/beta/me/taskgroups('AAMkADIyAAAhrbe-AAA=')/taskfolders
Resposta de amostra
Status code: 200 OK
{
"@odata.context": "https://outlook.office365.com/api/beta/$metadata#Me/TaskGroups('AAMkADIyAAAhrbe-AAA%3D')/TaskFolders",
"value": [
{
"@odata.id": "https://outlook.office365.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAhrbPXAAA=')",
"Id": "AAMkADIyAAAhrbPXAAA=",
"ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAOlA==",
"IsDefaultFolder": false,
"Name": "Cooking",
"ParentGroupKey": "63d640cf-946f-4734-9c29-60dda7b76acb"
}
]
}
Atualizar pastas de tarefas
Escopo mínimo necessário
Atualize as propriedades graváveis de uma pasta de tarefas.
Você não pode mudar o valor da propriedade Nome da pasta de tarefas padrão, Tasks
.
Um ID da pasta de tarefas é exclusivo na caixa de correio do usuário.
PATCH https://outlook.office.com/api/beta/me/taskfolders('{folder_id}')
No corpo da solicitação, forneça uma representação JSON das propriedades graváveis a serem atualizadas na TaskFolder.
Resposta
Código de status de sucesso: 200 OK
Corpo de resposta: A TaskFolder atualizada.
Solicitação de amostra
O exemplo a seguir altera o nome da pasta da tarefas para Charity work
.
PATCH https://outlook.office.com/api/beta/me/taskfolders('AAMkADIyAAAhrbPWAAA=')
Content-Type: application/json
{
"Name": "Charity work"
}
Resposta de amostra
Status code: 200 OK
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/TaskFolders/$entity",
"@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAhrbPWAAA=')",
"Id": "AAMkADIyAAAhrbPWAAA=",
"ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAKfQ==",
"IsDefaultFolder": false,
"Name": "Charity work",
"ParentGroupKey": "0006f0b7-0000-0000-c000-000000000046"
}
Excluir pastas de tarefas
Escopo mínimo necessário
Excluir a pasta de tarefas especificada.
Tentar excluir a pasta de tarefas padrão Tasks
retornaria HTTP 400 - Solicitação Incorreta.
DELETE https://outlook.office.com/api/beta/me/taskfolders('{folder_id}')
Resposta
Código de status de sucesso: 204 Sem Conteúdo
Corpo de Resposta: Nenhum.
Solicitação de amostra
DELETE https://outlook.office365.com/api/beta/me/taskfolders('AAMkADIyAAAhrbPXAAA=')
Resposta de amostra
Status code: 204
Criar grupos de tarefas
Escopo mínimo necessário
Escopo mínimo necessário
POST https://outlook.office.com/api/beta/me/taskgroups
No corpo da solicitação, forneça uma representação JSON do TaskGroup a ser criado.
Resposta
Código do status de sucesso: 201 Criado
Corpo de resposta: O TaskGroup criado.
Solicitação de amostra
POST https://outlook.office.com/api/beta/me/taskgroups
Content-Type: application/json
{
"Name": "Leisure tasks"
}
Resposta de amostra
Status code: 201
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/TaskGroups/$entity",
"@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskGroups('AAMkADIyAAAhrbe-AAA=')",
"Id": "AAMkADIyAAAhrbe-AAA=",
"ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAGjg==".
"IsDefaultGroup": false,
"Name": "Leisure tasks",
"GroupKey": "63d640cf-946f-4734-9c29-60dda7b76acb"
}
Obter grupos de tarefas
Escopo mínimo necessário
Obter todos os grupos de tarefas na caixa de correio do usuário.
A resposta sempre inclui o grupo de tarefas padrão My Tasks
e quaisquer outros grupos de tarefas criados na caixa de correio.
GET https://outlook.office.com/api/beta/me/taskgroups
Resposta
Código de status de sucesso: 200 OK
Corpo de resposta: A coleção do TaskGroup.
Solicitação de amostra
GET https://outlook.office.com/api/beta/me/taskgroups
Resposta de amostra
Status code: 200
{
"@odata.context": "https://outlook.office365.com/api/beta/$metadata#Me/TaskGroups",
"value": [
{
"@odata.id": "https://outlook.office365.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskGroups('AAMkADIyAAADJ5pYAAA=')",
"Id": "AAMkADIyAAADJ5pYAAA=",
"ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAInHxLA==",
"IsDefaultGroup": true,
"Name": "My Tasks",
"GroupKey": "0006f0b7-0000-0000-c000-000000000046"
},
{
"@odata.id": "https://outlook.office365.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskGroups('AAMkADIyAAAhrbe-AAA=')",
"Id": "AAMkADIyAAAhrbe-AAA=",
"ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAInHxKw==",
"IsDefaultGroup": false,
"Name": "Leisure Tasks",
"GroupKey": "63d640cf-946f-4734-9c29-60dda7b76acb"
}
]
}
Atualizar grupos de tarefas
Escopo mínimo necessário
Atualizar as propriedades graváveis de um grupo de tarefas.
PATCH https://outlook.office.com/api/beta/me/taskgroups('{group_id}')
No corpo da solicitação, forneça uma representação JSON das propriedades graváveis a serem atualizadas no TaskGroup, como a propriedade Nome.
Resposta
Código de status de sucesso: 200 OK
Corpo de resposta: A tarefa atualizada.
Solicitação de amostra
O exemplo a seguir altera o nome de um grupo de tarefas para "Tarefas Pessoais". Observe que você não pode modificar o nome do grupo de tarefas padrão "Minhas tarefas".
PATCH https://outlook.office.com/api/beta/me/taskgroups('AAMkADIyAAAhrbe-AAA=')
Content-Type: application/json
{
"Name": "Personal Tasks"
}
Resposta de amostra
Status code: 200
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/TaskGroups/$entity",
"@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskGroups('AAMkADIyAAAhrbe-AAA=')",
"Id": "AAMkADIyAAAhrbe-AAA=",
"ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAGjw==",
"IsDefaultGroup": false,
"Name": "Personal Tasks",
"GroupKey": "63d640cf-946f-4734-9c29-60dda7b76acb"
}
Excluir grupos de tarefas
Escopo mínimo necessário
Excluir o grupo de tarefas especificado.
Tentar excluir o grupo de tarefas padrão My Tasks
retornaria HTTP 400 - Solicitação Incorreta.
DELETE https://outlook.office.com/api/beta/me/taskgroups('{group_id}')
Resposta
Código de status de sucesso: 204 Sem Conteúdo
Corpo de resposta: A tarefa atualizada.
Solicitação de amostra
DELETE https://outlook.office365.com/api/beta/me/taskgroups('AAMkADIyAAAhrbe-AAA=')
Resposta de amostra
Status code: 204
Próximas etapas
Se você estiver pronto para começar a criar um aplicativo ou apenas quiser aprender mais, temos tudo o que você precisa.
- Comece com as APIs REST de E-mail, Calendário e Contatos.
- Quer exemplos? Nós temos.
Se preferir, aprenda mais sobre como usar a plataforma do Office 365:
- API REST do Outlook no Centro de Desenvolvimento do Outlook
- Visão geral sobre desenvolvimento na plataforma do Office 365
- Autenticação de aplicativo do Office 365 e autorização de recursos
- Registrar manualmente seu aplicativo no Azure AD para que ele possa acessar as APIs do Office 365
- Uso da API REST do Outlook
- Referência de APIs REST de e-mail
- Referência de APIs REST do Calendário
- Referência de APIs REST de contatos
- Referência de recurso para as APIs REST de E-mail, Calendário, Contatos e Tarefa