Справка по REST API Задачи Outlook (бета)
Область применения: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com
Примечание
Эта документация включает API для ссылочных вложений в задачах, которые находятся в режиме предварительной версии. Параметры предварительного просмотра могут быть изменены до завершения и могут нарушать код, который их использует. Поэтому в своем производственном коде вы должны использовать только производственную версию API. Если она доступна, предпочтительной версией в настоящее время является v2.0.
Приложение REST API Outlook Task позволяет создавать, читать, синхронизировать, обновлять и удалять задачи пользователя, защищенные Azure Active Directory в Office 365. Учетная запись может быть учетной записью Office 365 или Майкрософт (Hotmail.com, Live.com, MSN.com, Outlook.com и Passport.com).
Примечание
Для упрощения справочной информации, в оставшейся части этой статьи при упоминании Outlook.com также подразумеваются и эти домены учетной записи Майкрософт.
Не интересуетесь бета-версией API? В оглавлении слева, перейдите к разделу Ссылка API REST Office 365 и выберите нужную версию.
Обзор
Вы можете использовать задачу в Outlook для отслеживания рабочего элемента. Вы можете отметить дату ее начала, соответствующие или фактические даты завершения, ход ее выполнения или статус, а также является ли она повторяющейся или требует напоминания.
Задачи организованы в папки задач, которые, в свою очередь, организованы в целевые группы. Каждый почтовый ящик имеет папку задач по умолчанию (со свойством Имя Tasks
) и группу задач по умолчанию (свойствоИмя — это My Tasks
).
Использование API REST Задача
Проверка подлинности
Как и для других REST API Outlook, для каждого запроса к API Outlook необходимо включать допустимый маркер доступа. Получение маркера доступа требует, чтобы вы зарегистрировались и идентифицировали свою программу и получили соответствующую авторизацию.
Вы можетеузнать больше о некоторых упрощенных параметрах регистрации и авторизации для вас. Помните об этом, когда выполняете конкретные действия в REST API задачи.
Версия API
Этот API был повышен с предварительной версии до общедоступной версии. Он поддерживается в версиях v2.0 и бета-версиях REST API Outlook.
Целевой пользователь
Запросы API задачи всегда выполняются от имени пользователя, вошедшего в систему.
Дополнительные сведения, общие для всех подразделов REST API Outlook, см. в разделе Использование REST API Outlook.
Параметры URL-адреса
В примерах этой статьи в параметрах URL-адресов запроса REST используются следующие заполнители.
Параметр | Тип | Описание |
---|---|---|
Параметры URL-адреса | ||
attachment_id | string | Числовой идентификатор вложения, уникальный в почтовом ящике пользователя. |
folder_id | string | Имя известной папки по умолчанию или числовой идентификатор папки задач, уникальный в почтовом ящике пользователя.Tasks |
group_id | string | Числовой идентификатор группы задач, уникальный в почтовом ящике пользователя. |
task_id | string | Идентификатор числовой задачи, уникальный в почтовом ящике пользователя. |
Указание свойств StartDateTime и DueDateTime
При создании задачи:
- StartDateTime а также DueDateTime являются необязательными, но настройка StartDateTime требует установки DueDateTime к той же или более поздней дате.
- Если вы установили только StartDateTime, DueDateTime будет автоматически установлено на то же значение, что и StartDateTime.
- Если вы установили DueDateTime в
null
, тогда StartDateTime также будет автоматически установлен наnull
.
Если вы решите установить StartDateTime или DueDateTime при создании или обновлении задачи:
- Укажите информацию о дате и часовом поясе.
- Не указывайте определенное время в этих свойствах, поскольку метод POST (или PATCH) всегда игнорирует его и принимает полночь в указанный часовой пояс.
- По умолчанию метод POST (или PATCH) преобразует значение в UTC и возвращает его в UTC в ответе.
Например, если вы укажете 26 апреля в Восточном стандартном времени (EST) в StartDateTime:
"StartDateTime": {
"DateTime": "2016-04-26T09:00:00",
"TimeZone": "Eastern Standard Time"
}
POST (или PATCH) игнорирует временную часть, конвертирует 26 апреля в полночь в EST в UTC и возвращает это значение в UTC в ответе:
"StartDateTime": {
"DateTime": "2016-04-26T04:00:00.0000000",
"TimeZone": "UTC"
}
Вы можете использовать заголовок Prefer: outlook.timezone
, чтобы иметь все связанные с датой свойства в ответе, представленном в часовом поясе, отличном от UTC.
Свойства возвращаемой даты в пользовательском часовом поясе
Связанные с датой свойства в ресурсе Задача включают следующее:
- CompletedDateTime
- CreatedDateTime
- DueDateTime
- LastModifiedDateTime
- ReminderDateTime
- StartDateTime
По умолчанию операции POST, GET, PATCH и Complete возвращают свойства даты в своих ответах REST в формате UTC. Вы можете использовать заголовок Prefer: outlook.timezone
, чтобы иметь все связанные с датой свойства в ответе, представленном в часовом поясе, отличном от UTC. Следующий пример возвращает связанные с датой свойства в EST в соответствующем ответе:
Prefer: outlook.timezone="Eastern Standard Time"
Дополнительные сведения, общие для всех подразделов REST API Outlook, см. в разделе Использование REST API Outlook.
Создание задач
Минимальная требуемая область
Создать задачу. Существует 2 основных сценария.
Вы можете создать задачу в группе задач по умолчанию (My Tasks
) и папку задач по умолчанию (Tasks
) почтового ящика пользователя. В этом случае вам не нужно указывать какую-либо группу задач или папку задач.
POST https://outlook.office.com/api/beta/me/tasks
Вы также можете создать задачу в определенной папке задач:
POST https://outlook.office.com/api/beta/me/taskfolders('{folder_id}')/tasks
В тексте запроса укажите представление JSON задачи, которую необходимо создать.
См. дополнительную информацию о настройке StartDateTime и DueDateTime.
Выясните, как указать определенный часовой пояс для всех связанных с датой свойств в отклике.
Ответ
Код состояния успешного выполнения: 201 Создана
Текст ответа: Созданная задача.
Пример запроса
Первый пример создает задачу в указанной папке задачи и выражает StartDateTime и DueDateTime в тихоокеанском стандартном времени (PST) в тексте запроса.
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"
}
}
Пример отклика
Метод POST игнорирует временную часть в тексте запроса и предполагает, что время в указанном часовом поясе (PST) — всегда полночь. Затем по умолчанию метод POST преобразует и показывает все связанные с датой свойства в UTC в ответе.
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"
}
Пример запроса
Чтобы показать, как Prefer: outlook.timezone
работает заголовок, следующий пример создает задачу, выражает StartDateTime и DueDateTime в Восточном стандартном времени (EST) и включает Prefer
заголовок Тихоокеанского стандартного времени (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"
}
}
Пример отклика
Как и в последнем примере, метод POST игнорирует временную часть StartDateTime и DueDateTime в тексте запроса и предполагает, что время в указанном часовом поясе (EST) — всегда полночь.
Поскольку Prefer
заголовок указывает PST, метод POST выражает все связанные с датой свойства в ответе в PST. В частности, для параметров StartDateTime и DueDateTime метод POST преобразует полночь из EST в PST и возвращает их в PST в ответе.
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"
}
Получить задачи
Получить все задачи
Минимальная требуемая область
Получите несколько задач.
Вы можете получить все задачи в почтовом ящике пользователя, вошедшего в систему.
GET https://outlook.office.com/api/beta/me/tasks
Или вы можете получить все задания в указанной папке:
GET https://outlook.office.com/api/beta/me/taskfolders('{folder_id}')/tasks
Если существует более одной группы задач, и вы хотите получить все задачи в указанной группе задач, сначала получите все папки задач в этой группе задач, а затем получите задачи в каждой из этих папок задач.
Ответ
Код состояния успешного выполнения: 200 OK
Текст отклика: Коллекция задач
По умолчанию свойства, связанные с датой в ответе, выражаются в UTC. Выясните, как указать определенный часовой пояс для всех связанных с датой свойств в отклике.
Пример запроса
В следующем примере все задачи выполняются в почтовом ящике пользователя.
GET https://outlook.office.com/api/beta/me/tasks
Пример отклика
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"
}
]
}
Получить задачу
Минимальная требуемая область
Получить конкретную задачу.
GET https://outlook.office.com/api/beta/me/tasks('{task_id}')
Ответ
Код состояния успешного выполнения: 200 OK
Текст отклика: запрашиваемая задача.
По умолчанию свойства, связанные с датой в ответе, выражаются в UTC. Выясните, как указать определенный часовой пояс для всех связанных с датой свойств в отклике.
Пример запроса
GET https://outlook.office.com/api/beta/me/tasks('AAMkADA1MTrgAAA=')
Пример отклика
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"
}
Обновление задач
Минимальная требуемая область
Измените записываемые свойства задачи.
PATCH https://outlook.office.com/api/beta/me/tasks/{task_id}
В тексте запроса поставьте JSON-представление записываемых свойств для обновления в задаче.
См. дополнительную информацию о настройке StartDateTime и DueDateTime.
Свойство CompletedDateTime может быть установлено действием Complete или с явной реализацией с помощью операции PATCH. Если вы используете PATCH для установки CompletedDateTime, убедитесь, что вы также установили Состояние на Completed
.
По умолчанию свойства в отклике, связанные с датой, выражаются в формате всемирного координированного времени (UTC). Выясните, как указать определенный часовой пояс для всех связанных с датой свойств в отклике.
Ответ
Код состояния успешного выполнения: 200 OK
Текст отклика: Обновленная задача.
Пример запроса
Следующий пример изменяет DueDateTime и использует заголовок Prefer: outlook.timezone
, чтобы указать свойства, связанные с датой, которые будут выражены в формате восточного стандартного времени (EST) в отклике.
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"
}
}
Пример отклика
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"
}
Удалить задачи
Минимальная требуемая область
Удалить указанную задачу в почтовом ящике пользователя.
DELETE https://outlook.office.com/api/beta/me/tasks('{task_id}')
Ответ
Код состояния успешного выполнения: 204 Нет содержимого
Текст отклика: Нет
Пример запроса
DELETE https://outlook.office365.com/api/beta/me/tasks('AAMkADIyAAAhrb_QAAA=')
Пример отклика
Status code: 204 No Content
Выполнить задачи
Минимальная требуемая область
Завершить задачу и установить свойство CompletedDateTime на текущую дату и свойство Status на Completed
.
POST https://outlook.office.com/api/beta/me/tasks('{task_id}')/complete
Примечание
CompletedDateTime представляет собой дату завершения задачи. Время CompletedDateTime устанавливается по умолчанию на полночь всемирного координированного времени (UTC).
Приложение может указать пользовательский часовой пояс в Prefer
заголовке запроса. Ниже приведен пример установки CompletedDateTime на тихоокеанское стандартное время (PST):
Prefer: outlook.timezone="Pacific Standard Time"
Этот заголовок запроса устанавливает все связанные с датой свойства в ответе на указанный часовой пояс.
Ответ
Код состояния успешного выполнения: 200 OK
Текст отклика: Завершенная задача находится в коллекции задач. Если вы выполняете задачу в повторяющейся серии, коллекция задач будет содержать завершенную задачу в серии и следующую задачу в серии.
Пример запроса
В следующем примере указанная задача помечается как завершенная. Поскольку она указывает тихоокеанское стандартное время (PST) в Prefer: outlook.timezone
заголовке, CompletedDateTime и другие связанные с датой свойства в отклике выражены в PST.
POST https://outlook.office.com/api/beta/me/tasks('AAMkADA1MT15rfAAA=')/complete
Prefer: outlook.timezone="Pacific Standard Time"
Пример отклика
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"
}
]
}
Синхронизировать задачи или папки задач
Минимальная требуемая область
Вы можете синхронизировать задачи в папке задачи или в папках задач в почтовом ящике пользователя. Синхронизация задач — это операция с каждой папкой; например, вы можете синхронизировать все задачи в папке задач по умолчанию Tasks
. Чтобы синхронизировать задачи в иерархии папок, вам необходимо синхронизировать каждую папку задач по отдельности. Процессы для синхронизации задач или папок задач аналогичны и требуют, как правило, цикла из двух или более запросов синхронизации, каждый из которых является вызовом GET.
Используйте метод GET так же, как вы получаете задания в папке или получаете папки задач в почтовом ящике за исключением того, что теперь вы включаете определенные заголовки запросов и deltaToken или skipToken, когда это необходимо.
Заголовки запросов
- Вы должны указать заголовок
Prefer: odata.track-changes
во всех запросах синхронизации, кроме тех, которые содержатskipToken
, который возвращается из предыдущего запроса синхронизации. Прежде чем продолжить, найдите в первом ответе заголовок Preference-Applied: odata.track-changes для подтверждения того, что ресурс поддерживает синхронизацию. (Дополнительная информация оskipToken
в в примере данных второго отклика для задач, если вы выполняете синхронизацию задач, или в примере данных второго отклика для папок задач, если вы синхронизируете папки задач.) - Вы можете указать заголовок
Prefer: odata.maxpagesize={x}
, чтобы указать максимальное количество задач (или папок задач в зависимости от того, что вы синхронизируете), которые возвращаются с каждым запросом синхронизации.
Вот типичный цикл синхронизации:
Выполните начальный запрос GET с обязательным заголовком Prefer: odata.track-changes. Начальный ответ на запрос синхронизации всегда возвращает deltaToken. (Второй и последующие запросы GET отличаются от начального запроса GET, так как включают deltaToken или skipToken, полученные в предыдущем отклике).
Если первый отклик возвращает заголовок Preference-Applied: odata.track-changes, можно продолжить синхронизацию ресурса.
Выполните второй запрос GET. Укажите заголовок Prefer: odata.track-changes и deltaToken, возвращенный из первого запроса GET, чтобы определить, есть ли дополнительные экземпляры ресурса для синхронизации. Второй запрос возвращает дополнительные экземпляры и либо skipToken в случае, если доступно больше экземпляров, либо deltaToken в случае, если последний экземпляр синхронизирован (в этом случае вы можете остановиться).
Продолжите синхронизацию, отправив вызов GET и указав skipToken, возвращенный от предыдущего вызова. Прекратите действия, когда получите окончательный ответ, содержащий заголовок @odata.deltaLink с deltaToken, что указывает на завершение синхронизации.
Проверьте синтаксис на наличие начального и последующих вызовов в ходе синхронизации.
Для синхронизации задач в папке задач
Исходный запрос:
GET https://outlook.office.com/api/beta/me/TaskFolders('{folder_id}')/Tasks
Второй запрос или первый запрос последующего цикла:
GET https://outlook.office.com/api/beta/me/TaskFolders('{folder_id}')/Tasks/?$deltatoken={delta_token}
Третий или последующий запрос в том же цикле. Остановите, когда вы получите ответ, содержащий заголовок @odata.deltaLink
с deltaToken
еще раз:
GET https://outlook.office.com/api/beta/me/TaskFolders('{folder_id}')/Tasks/?$skiptoken={skip_token}
Синхронизация папок задач в почтовом ящике
Исходный запрос:
GET https://outlook.office.com/api/beta/me/TaskFolders
Второй запрос или первый запрос последующего цикла:
GET https://outlook.office.com/api/beta/me/TaskFolders/?$deltatoken={delta_token}
Третий или последующий запрос в том же цикле. Остановите, когда вы получите ответ, содержащий заголовок @odata.deltaLink
с deltaToken
еще раз:
GET https://outlook.office.com/api/beta/me/TaskFolders/?$skiptoken={skip_token}
Параметры
Параметр | Тип | Описание |
---|---|---|
Параметры заголовка | ||
Prefer | odata.track-changes | Указывает, что запрос является запросом синхронизации. Требуется для первых 2-х запросов GET в цикле. |
Prefer | odata.maxpagesize | Устанавливает количество сообщений, которые должны быть возвращены в каждом отклике. Необязательный. |
Параметры URL-адреса | ||
deltaToken | string | Строка deltaToken была возвращена в качестве части значения для @odata.deltaLink в предыдущем ответе синхронизации. |
skipToken | string | Строка skipToken была возвращена в качестве части значения для @odata.nextLink в предыдущем ответе синхронизации. |
Примечание
- При указании
Prefer: odata.track-changes
в исходном запросе, если ответ поддерживает синхронизацию, ответ будет включатьPreference-applied: odata.track-changes
в заголовке. - Если выполняется попытка синхронизации ресурса, который не поддерживается, или если это не первоначальный запрос синхронизации, в ответе не будет заголовка
Preference-applied
. - Для лучшего времени отклика используйте параметр запроса $select, чтобы получить только свойства, полезные для вашего сценария.
- Нельзя использовать параметры запроса
$filter
,$orderby
,$search
и$top
.
Текст ответа
При синхронизации задач: запрошенные объекты Задачав коллекции.
При синхронизации папок задач: запрошенные объекты TaskFolder в коллекции.
Количество объектов зависит от значения, установленного в заголовке запроса Prefer: odata.maxpagesize
.
Пример
Ниже приведены два множества примеров:
Каждый пример показывает начальный и второй запросы синхронизации.
- Каждый запрос указывает
Prefer: odata.maxpagesize=1
для возврата только одного объекта (задачи или папки задач соответственно) за один раз. - Первоначальный ответ возвращает один объект sync'd,
deltaLink
иdeltaToken
. - Второй запрос использует
deltatoken
. Второй отклик возвращает один объект sync'd,nextLink
иskipToken
.
Выполните итерацию через процесс синхронизации и используйте в следующем вызове GET skipToken
, возвращенный из предыдущего запроса синхронизации, пока вы не получите отклик синхронизации, который содержит deltaLink
и deltaToken
, как показано ниже:
"@odata.deltaLink": “https://outlook.office.com/api/beta/me/TaskFolders('AQMkAGMw80AAAIBEgAAAA==')/Tasks/?%24deltaToken=294a8f04cc0345c5ae093d484629e186”
Когда это произойдет, этот цикл синхронизации будет завершен. Сохраните deltaToken
для следующего цикла синхронизации.
Пример начального запроса (синхронизация задач)
GET https://outlook.office.com/api/beta/me/TaskFolders('AQMkAGMwAAAIBEgAAAA==')/Tasks HTTP/1.1
Prefer: odata.maxpagesize=1
Prefer: odata.track-changes
Примеры данных начального отклика (синхронизация задач)
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"
}
Пример второго запроса (синхронизация задач)
GET https://outlook.office.com/api/beta/me/TaskFolders('AQMkAGMwAAAIBEgAAAA==')/Tasks/?%24deltatoken=175e2e04482e431ea96e89145c212f8c HTTP/1.1
Prefer: odata.maxpagesize=1
Prefer: odata.track-changes
Пример данных второго отклика (синхронизация задач)
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"
}
Продолжите синхронизацию задач и используйте в следующем вызове GET skiptoken
, возвращенный из @odata.nextLink
предыдущего отклика, пока окончательный отклик не будет содержать @odata.deltaLink
и deltaToken
. Сохраните deltaToken
для следующего цикла синхронизации.
Пример начального запроса (синхронизация папок задач)
GET https://outlook.office.com/api/beta/me/TaskFolders HTTP/1.1
Prefer: odata.maxpagesize=1
Prefer: odata.track-changes
Пример данных начального отклика (синхронизация папок задач)
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"
}
Пример второго запроса (синхронизация папок задач)
GET https://outlook.office.com/api/beta/me/TaskFolders/?%24deltatoken=OyZKBDxtmuutZdNAsvah92MZg38AAAAAZwkBAAAA HTTP/1.1
Prefer: odata.maxpagesize=1
Prefer: odata.track-changes
Пример данных второго отклика (синхронизация папок задач)
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"
}
Продолжите синхронизацию задач и используйте в следующем вызове GET skiptoken
, возвращенный из @odata.nextLink
предыдущего отклика, пока окончательный отклик не будет содержать @odata.deltaLink
и deltaToken
. В этом примере третий запрос возвращает deltaToken
, и синхронизация для этого цикла завершена.
Пример третьего запроса (синхронизация папок задач)
GET https://outlook.office.com/api/beta/me/TaskFolders/?%24skipToken=x_zCAz5nm2dcGAFGk5qypL1PSyEAAC6cRncCAAAA HTTP/1.1
Prefer: odata.maxpagesize=1
Пример данных третьего ответа (синхронизация папок задач)
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"
}
Получение вложений
Получение набора вложений
Минимальная требуемая область
Получите вложения из определенной задачи.
GET https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments
Тип отклика
Набор вложений с типом FileAttachment, ItemAttachment или ReferenceAttachment.
Пример запроса
Следующий пример возвращает все вложения указанной задачи, которые включают файл, элемент события и ссылку на картинку на OneDrive.
GET https://outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments
Пример отклика
Код состояния: 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
}
]
}
Получение вложения
Минимальная требуемая область
Получите вложение по определенной задаче.
GET https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments('{attachment_id}')
Тип отклика
Запрошенное вложение файла, вложение элемента или вложение ссылки.
Пример запроса (вложенный файл)
В следующем примере создается указанное вложение для задачи, которое является вложенным файлом.
GET https://outlook.office.com/api/beta/me/tasks('AAMkADNkNS3qGAAA=')/attachments('AAMkADNkNJVnQIe9r0=')
Пример отклика
Код состояния: 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="
}
Выборка запроса (вложенный элемент)
В следующем примере вы получите конкретное вложение для задачи, которая является элементом события.
GET https://outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments('AAMkADNkNJVnQIe9r0=')
Пример отклика
Код состояния: 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
}
Выборка запроса (вложенная ссылка)
В следующем примере создается указанное вложение для задачи, которое является вложенной ссылкой.
GET https://outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments('AAMkADNkNQG1Lnn5-o=')
Пример отклика
Код состояния: 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
}
Выборка запроса ($expand на вложениях)
Следующий пример получает и расширяет вложенные файлы, встроенные в свойства задачи.
GET https://outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')?$expand=attachments
Пример отклика
Код состояния: 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="
}
]
}
Добавление вложений
Вы можете добавить файл, элемент (сообщение, событие или контакт) или ссылку на файл в качестве вложения к задаче.
Добавление вложенного файла
Минимальная требуемая область
Добавьте файл в качестве вложения к задаче.
POST https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments
Обязательный параметр текста сообщения | Тип | Описание |
---|---|---|
@odata.type | string | #Microsoft.OutlookServices.FileAttachment |
Имя | string | Имя вложения. |
ContentBytes | двоичный | Содержимое файла для вложения в кодировке base64. |
Тип отклика
Новое вложение файла.
Пример запроса
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="
}
Пример отклика
Код состояния: 201 Создано
{
"@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="
}
Добавить вложенный элемент
Минимальная требуемая область
Добавьте элемент (сообщение, событие или контакт) в качестве вложения к задаче.
POST https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments
Обязательный параметр текста сообщения | Тип | Описание |
---|---|---|
@odata.type | string | #Microsoft.OutlookServices.ItemAttachment |
Имя | string | Имя вложения. |
Item | Объект Сообщение, Событие или Контакт. | Элемент для вложения. |
Тип ответа
Новое вложение элемента.
Пример запроса
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"
}
}
}
Пример отклика
Код состояния: 201 Создано
{
"@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
}
Добавить вложенную ссылку
Минимальная требуемая область
Добавьте ссылку на файл в качестве вложенной ссылки к задаче.
POST https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments
Обязательный параметр текста сообщения | Тип | Описание |
---|---|---|
@odata.type | Строка | #Microsoft.OutlookServices.ReferenceAttachment |
Имя | Строка | Отображаемое имя вложения. Обязательный. |
SourceUrl | Строка | URL для получения содержимого вложения. Если это URL-адрес на папку, то для надлежащего отображения папки в Outlook или Outlook в Интернете установите для параметра IsFolder значение true. Обязательный. |
Укажите параметры Name и SourceUrl и любые записываемые свойства вложения ссылки в тексте запроса.
Тип ответа
Пример запроса
Следующий пример добавляет вложенную ссылку в существующую задачу. Вложение - это ссылка на файл OneDrive для бизнеса.
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"
}
Пример отклика
Код состояния: 201 Создано
{
"@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
}
Удаление вложений
Удалить вложение задачи
Минимальная требуемая область
Удалите указанное вложение задачи. Вложение может быть вложенным файлом, вложенным элементом или вложенной ссылкой.
DELETE https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments('{attachment_id}')
Пример запроса
DELETE https:/outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments('AAMkADNkNQG1Lnn5-o=')
Пример отклика
Status code: 204
Создание папок задач
Минимальная требуемая область
Создайте папку задачи.
Вы можете создать папку задач в группе задач по умолчанию (My Tasks
) почтового ящика пользователя:
POST https://outlook.office.com/api/beta/me/taskfolders
Или вы можете создать папку задач в указанной группе задач:
POST https://outlook.office.com/api/beta/me/taskgroups('{group_id}')/taskfolders
В тексте запроса укажите представление JSON для объекта TaskFolder, который необходимо создать.
Ответ
Код состояния успешного выполнения: 201 Создан
Текст отклика: Созданный объект TaskFolder.
Пример запроса
В следующем примере папка задачи с именем Volunteer
создается в группе задач по умолчанию (My Tasks
) почтового ящика пользователя.
POST https://outlook.office.com/api/beta/me/taskfolders
Content-Type: application/json
{
"Name": "Volunteer"
}
Пример отклика
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"
}
Пример запроса
Следующий пример создает папку задач с именем Cooking
в указанной группе задач.
POST https://outlook.office.com/api/beta/me/taskgroups('AAMkADIyAAAhrbe-AAA')/taskfolders
Content-Type: application/json
{
"Name": "Cooking"
}
Пример отклика
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"
}
Получить папки задач
Минимальная требуемая область
Получить несколько папок задач.
Вы можете получить все папки задач в почтовом ящике пользователя:
GET https://outlook.office.com/api/beta/me/taskfolders
Или вы можете получить папки задач в определенной группе задач:
GET https://outlook.office365.com/api/beta/me/taskgroups('{group_id}')/taskfolders
Ответ
Код состояния успешного выполнения: 200 OK
Текст отклика: Коллекция taskfolder.
Пример запроса
В следующем примере все папки задач получают в почтовом ящике пользователя.
GET https://outlook.office.com/api/beta/me/taskfolders
Пример отклика
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"
}
]
}
В следующем примере все папки задач получают в указанной группе задач.
GET https://outlook.office365.com/api/beta/me/taskgroups('AAMkADIyAAAhrbe-AAA=')/taskfolders
Пример отклика
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"
}
]
}
Обновление папок задач
Минимальная требуемая область
Обновите доступные для записи свойства папки задач.
Вы не можете изменить значение свойства Имя папки задач по умолчанию, Tasks
.
Идентификатор папки задач уникален в почтовом ящике пользователя.
PATCH https://outlook.office.com/api/beta/me/taskfolders('{folder_id}')
В тексте запроса поставьте JSON-представление записываемых свойств для обновления в TaskFolder.
Ответ
Код состояния успешного выполнения: 200 OK
Текст отклика: обновленная TaskFolder.
Пример запроса
Следующий пример изменяет имя папки задачи на Charity work
.
PATCH https://outlook.office.com/api/beta/me/taskfolders('AAMkADIyAAAhrbPWAAA=')
Content-Type: application/json
{
"Name": "Charity work"
}
Пример отклика
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"
}
Удалить папки задач
Минимальная требуемая область
Удалить указанную папку задач.
Попытка удалить папку задач по умолчанию Tasks
вернет сообщение HTTP 400 Недопустимый запрос.
DELETE https://outlook.office.com/api/beta/me/taskfolders('{folder_id}')
Ответ
Код состояния успешного выполнения: 204 Нет содержимого
Текст отклика: None.
Пример запроса
DELETE https://outlook.office365.com/api/beta/me/taskfolders('AAMkADIyAAAhrbPXAAA=')
Пример отклика
Status code: 204
Создание групп задач
Минимальная требуемая область
Создайте группу задач в почтовом ящике пользователя.
POST https://outlook.office.com/api/beta/me/taskgroups
В тексте запроса укажите представление JSON для объекта TaskGroup, который необходимо создать.
Ответ
Код состояния успешного выполнения: 201 Создан
Текст отклика: созданная TaskGroup.
Пример запроса
POST https://outlook.office.com/api/beta/me/taskgroups
Content-Type: application/json
{
"Name": "Leisure tasks"
}
Пример отклика
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"
}
Получить группы задач
Минимальная требуемая область
Получить все группы задач в почтовом ящике пользователя.
Ответ всегда включает в себя группу задач по умолчанию My Tasks
и любые другие группы задач, созданные в почтовом ящике.
GET https://outlook.office.com/api/beta/me/taskgroups
Ответ
Код состояния успешного выполнения: 200 OK
Текст отклика: Коллекция TaskGroup.
Пример запроса
GET https://outlook.office.com/api/beta/me/taskgroups
Пример отклика
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"
}
]
}
Обновить группы задач
Минимальная требуемая область
Обновить записываемые свойства группы задач.
PATCH https://outlook.office.com/api/beta/me/taskgroups('{group_id}')
В тексте запроса поставить JSON-представление перезаписываемых свойств для обновления в TaskGroup, например, свойство Имя.
Ответ
Код состояния успешного выполнения: 200 OK
Текст отклика: Обновленная задача.
Пример запроса
Следующий пример изменяет имя группы задач на «Персональные задачи». Обратите внимание, что вы не можете изменить имя «Мои задачи» группы задач по умолчанию.
PATCH https://outlook.office.com/api/beta/me/taskgroups('AAMkADIyAAAhrbe-AAA=')
Content-Type: application/json
{
"Name": "Personal Tasks"
}
Пример отклика
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"
}
Удалить группы задач
Минимальная требуемая область
Удалите указанную группу задач.
Попытка удалить группу задач по умолчанию My Tasks
вернет сообщение HTTP 400 Недопустимый запрос.
DELETE https://outlook.office.com/api/beta/me/taskgroups('{group_id}')
Ответ
Код состояния успешного выполнения: 204 Нет содержимого
Текст отклика: Обновленная задача.
Пример запроса
DELETE https://outlook.office365.com/api/beta/me/taskgroups('AAMkADIyAAAhrbe-AAA=')
Пример отклика
Status code: 204
Дальнейшие действия
Независимо от того, готовы ли вы приступить к созданию приложения или хотите изучить больше материалов, у нас есть все необходимое.
- Начало работы с API REST Почта, Календарь и Контакты.
- Хотите увидеть примеры? Вот они.
Или узнайте больше об использовании платформы Office 365 здесь:
- API REST Outlook для центра разработок Outlook
- Обзор разработки на платформе Office 365
- Проверка подлинности приложений и авторизация ресурсов в Office 365
- Зарегистрируйте приложение в Azure AD вручную, чтобы оно могло получать доступ к API Office 365
- Пользуйтесь REST API Outlook
- Справка по REST API для Почты
- Справка по REST API для Календаря
- Справка по REST API для Контактов
- Справочные ресурсы по REST API для Почты, Календаря, Контактов и Задачи