Поделиться через


Справка по Outlook REST API Task (версия 2.0)

Область применения: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com

Приложение REST API Outlook Task позволяет создавать, читать, синхронизировать, обновлять и удалять задачи пользователя, защищенные Azure Active Directory в Office 365. Учетная запись пользователя может быть учетной записью Office 365 или Майкрософт (Hotmail.com, Live.com, MSN.com, Outlook.com и Passport.com).

Примечание

Для простоты ссылок в остальной части этой статьи при упоминании Outlook.com также подразумеваются и эти домены учетной записи Майкрософт.

Не интересуетесь API версии 2.0? В левой части оглавлении перейдите к разделу Справка по Office 365 REST API и выберите нужную версию.

Обзор

Вы можете использовать задачу в Outlook для отслеживания рабочего элемента. Вы можете отметить даты ее начала, планируемые или фактические даты завершения, ход ее выполнения или статус, а также является ли она повторяющейся или требует напоминания.

Задачи организованы в папки задач , которые, в свою очередь, организованы в группы задач. Каждый почтовый ящик имеет папку задач по умолчанию (со свойством Имя Tasks) и группу задач по умолчанию (свойствоИмя — это My Tasks).

Использование API REST Task

Проверка подлинности

Как и для других 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 строка Числовой идентификатор вложения, уникальный в почтовом ящике пользователя.
folder_id строка Имя известной папки по умолчанию или числовой идентификатор папки задач, уникальный в почтовом ящике пользователя.Tasks
group_id строка Числовой идентификатор группы задач, уникальный в почтовом ящике пользователя.
task_id строка Числовой идентификатор задачи, уникальный в почтовом ящике пользователя.

Указание свойств 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.

Связанные с датой свойства в ресурсе Task включают следующее:

  • 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/v2.0/me/tasks

Вы также можете создать задачу в определенной папке задач:

POST https://outlook.office.com/api/v2.0/me/taskfolders('{folder_id}')/tasks

В тексте запроса укажите представление JSON задачи, которую необходимо создать.

См. дополнительную информацию о настройке StartDateTime и DueDateTime.

Выясните, как указать определенный часовой пояс для всех связанных с датой свойств в ответе.

Ответ

Код состояния успешного выполнения: 201 Создан

Текст ответа: Созданная задача.

Пример запроса

Первый пример создает задачу в указанной папке задачи и выражает StartDateTime и DueDateTime в тихоокеанском стандартном времени (PST) в тексте запроса.

POST https://outlook.office.com/api/v2.0/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/v2.0/$metadata#Me/TaskFolders('AAMkADIyAAAhrbPXAAA%3D')/Tasks/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/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/v2.0/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/v2.0/$metadata#Me/Tasks/$entity",
    "@odata.id": "https://outlook.office.com/api/v2.0/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/v2.0/me/tasks

Или вы можете получить все задачи в определенной папке:

GET https://outlook.office.com/api/v2.0/me/taskfolders('{folder_id}')/tasks

Если существует более одной группы задач, и вы хотите получить все задачи в указанной группе задач, сначала получите все папки задач в этой группе задач, а затем получите задачи в каждой из этих папок задач.

Ответ

Код состояния успешного выполнения: 200 OK

Текст отклика: Коллекция задач

По умолчанию свойства, связанные с датой в ответе, выражаются в UTC. Выясните, как указать определенный часовой пояс для всех связанных с датой свойств в ответе.

Пример запроса

В следующем примере все задачи выполняются в почтовом ящике пользователя.

GET https://outlook.office.com/api/v2.0/me/tasks

Пример ответа

Status code: 200 OK

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Tasks",
  "value": [
    {
      "@odata.id": "https://outlook.office.com/api/v2.0/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/v2.0/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/v2.0/me/tasks('{task_id}')

Ответ

Код состояния успешного выполнения: 200 OK

Текст отклика: запрашиваемая задача.

По умолчанию свойства, связанные с датой в ответе, выражаются в UTC. Выясните, как указать определенный часовой пояс для всех связанных с датой свойств в ответе.

Пример запроса

GET https://outlook.office.com/api/v2.0/me/tasks('AAMkADA1MTrgAAA=') 

Пример ответа

Status code: 200 OK

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Tasks/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/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/v2.0/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/v2.0/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/v2.0/$metadata#Me/Tasks/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/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/v2.0/me/tasks('{task_id}')

Ответ

Код состояния успешного выполнения: 204 Нет содержимого

Текст отклика: Нет

Пример запроса

DELETE https://outlook.office365.com/api/v2.0/me/tasks('AAMkADIyAAAhrb_QAAA=')

Пример ответа

Status code: 204 No Content

Выполнить задачи

Минимальная требуемая область

Завершить задачу и установить свойство CompletedDateTime на текущую дату и свойство Status на Completed.

POST https://outlook.office.com/api/v2.0/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/v2.0/me/tasks('AAMkADA1MT15rfAAA=')/complete

Prefer: outlook.timezone="Pacific Standard Time"

Пример ответа

Status code: 200 OK

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Tasks",
  "value": [
    {
      "@odata.id": "https://outlook.office365.com/api/v2.0/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}, чтобы указать максимальное количество задач (или папок задач в зависимости от того, что вы синхронизируете), которые возвращаются с каждым запросом синхронизации.

Вот типичный цикл синхронизации:

  1. Выполните начальный запрос GET с обязательным заголовком Prefer: odata.track-changes. Начальный ответ на запрос синхронизации всегда возвращает deltaToken. (Второй и последующие запросы GET отличаются от начального запроса GET, так как включают deltaToken или skipToken, полученные в предыдущем отклике).

  2. Если первый отклик возвращает заголовок 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/v2.0/me/TaskFolders('{folder_id}')/Tasks

Второй запрос или первый запрос последующего цикла:

GET https://outlook.office.com/api/v2.0/me/TaskFolders('{folder_id}')/Tasks/?$deltatoken={delta_token}

Третий или последующий запрос в том же цикле; остановитесь, когда вы получите ответ, содержащий заголовок @odata.deltaLink с deltaToken еще раз:

GET https://outlook.office.com/api/v2.0/me/TaskFolders('{folder_id}')/Tasks/?$skiptoken={skip_token}

Синхронизация папок задач в почтовом ящике

Исходный запрос:

GET https://outlook.office.com/api/v2.0/me/TaskFolders

Второй запрос или первый запрос последующего цикла:

GET https://outlook.office.com/api/v2.0/me/TaskFolders/?$deltatoken={delta_token}

Третий или последующий запрос в том же цикле; остановитесь, когда вы получите ответ, содержащий заголовок @odata.deltaLink с deltaToken еще раз:

GET https://outlook.office.com/api/v2.0/me/TaskFolders/?$skiptoken={skip_token}

Параметры

Параметр Тип Описание
Параметры заголовка
Prefer odata.track-changes Указывает, что запрос является запросом синхронизации. Требуется для первых 2-х запросов GET в цикле.
Prefer odata.maxpagesize Устанавливает количество сообщений, которые должны быть возвращены в каждом отклике. Необязательный.
Параметры URL-адреса
deltaToken строка Строка deltaToken была возвращена в качестве части значения для @odata.deltaLink в предыдущем ответе синхронизации.
skipToken строка Строка skipToken была возвращена в качестве части значения для @odata.nextLink в предыдущем ответе синхронизации.

Примечание

  • При указании Prefer: odata.track-changes в исходном запросе, если ответ поддерживает синхронизацию, ответ будет включать Preference-applied: odata.track-changes в заголовке.
  • Если выполняется попытка синхронизации ресурса, который не поддерживается, или если это не первоначальный запрос синхронизации, в ответе не будет заголовкаPreference-applied.
  • Для лучшего времени отклика используйте параметр запроса $select, чтобы получить только свойства, полезные для вашего сценария.
  • Вы не можете использовать параметры запроса $filter, $orderby, $search и $top.

Текст ответа

  • При синхронизации задач: запрошенные объекты Task в коллекции.

  • При синхронизации папок задач: запрошенные объекты 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/v2.0/me/TaskFolders('AQMkAGMw80AAAIBEgAAAA==')/Tasks/?%24deltaToken=294a8f04cc0345c5ae093d484629e186”

Когда это произойдет, этот цикл синхронизации будет завершен. Сохраните deltaToken для следующего цикла синхронизации.

Пример начального запроса (синхронизация задач)

    GET https://outlook.office.com/api/v2.0/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/v2.0/$metadata#me/TaskFolders('AQMkAGMwAAAIBEgAAAA%3D%3D')/Tasks",
  "value": [
    {
      "@odata.id": "https://outlook.office.com/api/v2.0/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/v2.0/me/TaskFolders('AQMkAGMwAAAIBEgAAAA==')/Tasks/?%24deltatoken=175e2e04482e431ea96e89145c212f8c"
}

Пример второго запроса (синхронизация задач)

    GET https://outlook.office.com/api/v2.0/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/v2.0/$metadata#me/TaskFolders('AQMkAGMwAAAIBEgAAAA%3D%3D')/Tasks/$delta",
  "value": [
    {
      "@odata.id": "https://outlook.office.com/api/v2.0/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/v2.0/me/TaskFolders('AQMkAGMw80AAAIBEgAAAA==')/Tasks/?%24skipToken=0fbce2031e844a2f9d13d8bee5ebe2c6"
}

Продолжите синхронизацию задач и используйте в следующем вызове GET skiptoken, возвращенный из @odata.nextLink предыдущего отклика, пока окончательный отклик не будет содержать @odata.deltaLink и deltaToken. Сохраните deltaToken для следующего цикла синхронизации.

Пример начального запроса (синхронизация папок задач)

    GET https://outlook.office.com/api/v2.0/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/v2.0/$metadata#me/TaskFolders",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/v2.0/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/v2.0/me/TaskFolders/?%24deltatoken=OyZKBDxtmuutZdNAsvah92MZg38AAAAAZwkBAAAA"
}

Пример второго запроса (синхронизация папок задач)

    GET https://outlook.office.com/api/v2.0/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/v2.0/$metadata#me/TaskFolders/$delta",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/v2.0/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/v2.0/me/TaskFolders/?%24skipToken=x_zCAz5nm2dcGAFGk5qypL1PSyEAAC6cRncCAAAA"
}

Продолжите синхронизацию задач и используйте в следующем вызове GET skiptoken, возвращенный из @odata.nextLink предыдущего отклика, пока окончательный отклик не будет содержать @odata.deltaLink и deltaToken. В этом примере третий запрос возвращает deltaToken, и синхронизация для этого цикла завершена.

Пример третьего запроса (синхронизация папок задач)

    GET https://outlook.office.com/api/v2.0/me/TaskFolders/?%24skipToken=x_zCAz5nm2dcGAFGk5qypL1PSyEAAC6cRncCAAAA HTTP/1.1
    Prefer: odata.maxpagesize=1

Пример данных третьего ответа (синхронизация папок задач)

HTTP/1.1 200 OK

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#me/TaskFolders/$delta",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/v2.0/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/v2.0/me/taskfolders/?%24deltaToken=x_zCBD5nm2dcGAFGk5qypL1PSyEAAC6cRncEAAAA"
}

Получение вложений

Получение набора вложений

Минимальная требуемая область

Получите вложения из определенной задачи.

GET https://outlook.office.com/api/v2.0/me/tasks('{task_id}')/attachments

Тип отклика

Набор вложений может с типом FileAttachment или ItemAttachment.

Пример запроса

Следующий пример возвращает все вложения указанной задачи, которые включают файл и элемент события.

GET https://outlook.office.com/api/v2.0/me/tasks('AAMkADNkN3qGAAA=')/attachments

Пример ответа

Код состояния: 200

{
    "@odata.context":"https://outlook.office.com/api/v2.0/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments",
    "value":[
        {
            "@odata.type":"#Microsoft.OutlookServices.FileAttachment",
            "@odata.id":"https://outlook.office.com/api/v2.0/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="
        },
        {
            "@odata.type":"#Microsoft.OutlookServices.ItemAttachment",
            "@odata.id":"https://outlook.office.com/api/v2.0/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/v2.0/me/tasks('{task_id}')/attachments('{attachment_id}')

Тип отклика

Запрошенное вложение файла или вложение элемента.

Пример запроса (вложенный файл)

В следующем примере создается указанное вложение для задачи, которое является вложенным файлом.

GET https://outlook.office.com/api/v2.0/me/tasks('AAMkADNkN3qGAAA=')/attachments('AAMkADNkNRT6JOBs=')

Пример ответа

Код состояния: 200

{
    "@odata.context":"https://outlook.office.com/api/v2.0/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments/$entity",
    "@odata.type":"#Microsoft.OutlookServices.FileAttachment",
    "@odata.id":"https://outlook.office.com/api/v2.0/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="
}

Выборка запроса (вложенный элемент)

В следующем примере вы получите конкретное вложение для задачи, которая является элементом события.

GET https://outlook.office.com/api/v2.0/me/tasks('AAMkADNkNS3qGAAA=')/attachments('AAMkADNkNJVnQIe9r0=')

Пример ответа

Код состояния: 200

{
    "@odata.context":"https://outlook.office.com/api/v2.0/$metadata#Me/Tasks('AAMkADNkNS3qGAAA%3D')/Attachments/$entity",
    "@odata.type":"#Microsoft.OutlookServices.ItemAttachment",
    "@odata.id":"https://outlook.office.com/api/v2.0/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
}

Добавление вложений

Вы можете добавить файл, элемент (сообщение, событие или контакт) или ссылку на файл в качестве вложения к задаче.

Добавление вложенного файла

Минимальная требуемая область

Добавьте файл в качестве вложения к задаче.

POST https://outlook.office.com/api/v2.0/me/tasks('{task_id}')/attachments
Обязательный параметр текста сообщения Тип Описание
@odata.type строка #Microsoft.OutlookServices.FileAttachment
Имя строка Имя вложения.
ContentBytes двоичный Содержимое файла для вложения в кодировке base64.

Тип отклика

Новое вложение файла.

Пример запроса

POST https://outlook.office.com/api/v2.0/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/v2.0/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments/$entity",
    "@odata.type":"#Microsoft.OutlookServices.FileAttachment",
    "@odata.id":"https://outlook.office.com/api/v2.0/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/v2.0/me/tasks('{task_id}')/attachments
Обязательный параметр текста сообщения Тип Описание
@odata.type строка #Microsoft.OutlookServices.ItemAttachment
Имя строка Имя вложения.
Элемент Объект Сообщение, Событие или Контакт. Элемент для вложения.

Тип ответа

Новое вложение элемента.

Пример запроса

POST https://outlook.office.com/api/v2.0/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/v2.0/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments/$entity",
    "@odata.type":"#Microsoft.OutlookServices.ItemAttachment",
    "@odata.id":"https://outlook.office.com/api/v2.0/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/v2.0/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/v2.0/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/v2.0/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments/$entity",
    "@odata.type":"#Microsoft.OutlookServices.ReferenceAttachment",
    "@odata.id":"https://outlook.office.com/api/v2.0/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/v2.0/me/tasks('{task_id}')/attachments('{attachment_id}')

Пример запроса

DELETE https:/outlook.office.com/api/v2.0/me/tasks('AAMkADNkN3qGAAA=')/attachments('AAMkADNkNQG1Lnn5-o=')

Пример ответа

Status code: 204

Создание папок задач

Минимальная требуемая область

Создайте папку задачи.

Вы можете создать папку задач в группе задач по умолчанию (My Tasks) почтового ящика пользователя:

POST https://outlook.office.com/api/v2.0/me/taskfolders

Или вы можете создать папку задач в указанной группе задач:

POST https://outlook.office.com/api/v2.0/me/taskgroups('{group_id}')/taskfolders

В тексте запроса укажите представление JSON для объекта TaskFolder, который необходимо создать.

Ответ

Код состояния успешного выполнения: 201 Создан

Текст отклика: Созданная TaskFolder .

Пример запроса

В следующем примере создается папка задачи, называемая Volunteer в группе задач по умолчанию (My Tasks) почтового ящика пользователя.

POST https://outlook.office.com/api/v2.0/me/taskfolders 
Content-Type: application/json

{
  "Name": "Volunteer"
}

Пример ответа

Status code: 201

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/TaskFolders/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/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/v2.0/me/taskgroups('AAMkADIyAAAhrbe-AAA')/taskfolders 
Content-Type: application/json

{
  "Name": "Cooking"
}

Пример ответа

Status code: 201

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/TaskGroups('AAMkADIyAAAhrbe-AAA%3D')/TaskFolders/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/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/v2.0/me/taskfolders

Или вы можете получить папки задач в определенной группе задач:

GET https://outlook.office365.com/api/v2.0/me/taskgroups('{group_id}')/taskfolders 

Ответ

Код состояния успешного выполнения: 200 OK

Текст отклика: Коллекция taskfolder.

Пример запроса

В следующем примере все папки задач получают в почтовом ящике пользователя.

GET https://outlook.office.com/api/v2.0/me/taskfolders

Пример ответа

Status code: 200 OK

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/TaskFolders",
  "value": [
    {
      "@odata.id": "https://outlook.office.com/api/v2.0/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/v2.0/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/v2.0/me/taskgroups('AAMkADIyAAAhrbe-AAA=')/taskfolders

Пример ответа

Status code: 200 OK

{
  "@odata.context": "https://outlook.office365.com/api/v2.0/$metadata#Me/TaskGroups('AAMkADIyAAAhrbe-AAA%3D')/TaskFolders",
  "value": [
    {
      "@odata.id": "https://outlook.office365.com/api/v2.0/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/v2.0/me/taskfolders('{folder_id}')

В тексте запроса поставьте JSON-представление записываемых свойств для обновления в TaskFolder.

Ответ

Код состояния успешного выполнения: 200 OK

Текст отклика: обновленная TaskFolder.

Пример запроса

Следующий пример изменяет имя папки задачи на Charity work.

PATCH https://outlook.office.com/api/v2.0/me/taskfolders('AAMkADIyAAAhrbPWAAA=')
Content-Type: application/json

{
  "Name": "Charity work"
}

Пример ответа

Status code: 200 OK

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/TaskFolders/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/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/v2.0/me/taskfolders('{folder_id}')

Ответ

Код состояния успешного выполнения: 204 Нет содержимого

Текст отклика: None.

Пример запроса

DELETE https://outlook.office365.com/api/v2.0/me/taskfolders('AAMkADIyAAAhrbPXAAA=')

Пример ответа

Status code: 204

Создание групп задач

Минимальная требуемая область

Создайте группу задач в почтовом ящике пользователя.

POST https://outlook.office.com/api/v2.0/me/taskgroups

В тексте запроса укажите представление JSON для объекта TaskGroup, который необходимо создать.

Ответ

Код состояния успешного выполнения: 201 Создан

Текст отклика: созданная TaskGroup.

Пример запроса

POST https://outlook.office.com/api/v2.0/me/taskgroups
Content-Type: application/json

{
  "Name": "Leisure tasks"
}

Пример ответа

Status code: 201

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/TaskGroups/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/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/v2.0/me/taskgroups

Ответ

Код состояния успешного выполнения: 200 OK

Текст отклика: Коллекция TaskGroup.

Пример запроса

GET https://outlook.office.com/api/v2.0/me/taskgroups

Пример ответа

Status code: 200

{
  "@odata.context": "https://outlook.office365.com/api/v2.0/$metadata#Me/TaskGroups",
  "value": [
    {
      "@odata.id": "https://outlook.office365.com/api/v2.0/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/v2.0/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/v2.0/me/taskgroups('{group_id}')

В тексте запроса поставить JSON-представление перезаписываемых свойств для обновления в TaskGroup, например, свойство Имя.

Ответ

Код состояния успешного выполнения: 200 OK

Текст отклика: Обновленная задача.

Пример запроса

Следующий пример изменяет имя группы задач на «Персональные задачи». Обратите внимание, что вы не можете изменить имя «Мои задачи» группы задач по умолчанию.

PATCH https://outlook.office.com/api/v2.0/me/taskgroups('AAMkADIyAAAhrbe-AAA=')
Content-Type: application/json

{
  "Name": "Personal Tasks"
}

Пример ответа

Status code: 200 

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/TaskGroups/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/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/v2.0/me/taskgroups('{group_id}')

Ответ

Код состояния успешного выполнения: 204 Нет содержимого

Текст отклика: Обновленная задача.

Пример запроса

DELETE https://outlook.office365.com/api/v2.0/me/taskgroups('AAMkADIyAAAhrbe-AAA=')

Пример ответа

Status code: 204

Дальнейшие действия

Независимо от того, готовы ли вы приступить к созданию приложения или хотите изучить больше материалов, у нас есть все необходимое.

Или узнайте больше об использовании платформы Office 365 здесь: