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


календарь: delta

Пространство имен: microsoft.graph

Важно!

API версии /beta в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.

Получение набора ресурсов календаря , добавленных, удаленных или обновленных в одном или нескольких календарях.

Как правило, синхронизация календарей в почтовом ящике в локальном хранилище влечет за собой цикл из нескольких разностных вызовов функций. Исходный вызов связан с полной синхронизацией, а каждый последующий вызов delta из того же цикла — с дополнительными изменениями (добавлениями, удалениями или обновлениями). Использование разностных данных позволяет постепенно поддерживать и синхронизировать локальное хранилище календарей в указанном почтовом ящике.

Этот API доступен в следующих национальных облачных развертываниях.

Глобальная служба Правительство США L4 Правительство США L5 (DOD) Китай управляется 21Vianet

Разрешения

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

Тип разрешения Разрешения с наименьшими привилегиями Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись) Calendars.Read Calendars.ReadBasic, Calendars.ReadWrite
Делегированные (личная учетная запись Майкрософт) Calendars.Read Calendars.ReadBasic, Calendars.ReadWrite
Для приложений Calendars.Read Calendars.ReadBasic, Calendars.ReadWrite

HTTP-запрос

Чтобы начать отслеживание изменений, необходимо выполнить запрос, включающий функцию delta в ресурсе calendara.

  • Чтобы получить добавочные изменения списка календарей в почтовом ящике пользователя, выполните следующие действия:
GET /me/calendars/delta
GET /users/{usersId}/calendars/delta

Параметры запроса

При отслеживании изменений в группах выполняется цикл из одного или нескольких вызовов разностных функций. Если вы используете параметры запроса, отличные от $deltatoken и $skiptoken, их необходимо указать в начальном запросе delta. Microsoft Graph автоматически кодирует указанные параметры в маркере, входящем в состав URL-адреса @odata.nextLink или @odata.deltaLink, включенного в отклик.

Параметры запроса нужно указать только один раз в первом запросе.

Копируйте и применяйте URL-адрес @odata.nextLink или @odata.deltaLink из предыдущего ответа в последующих запросах, так как в нем уже содержаться закодированные параметры.

Параметр запроса Тип Описание
$deltatoken string Маркер состояния, возвращаемый в @odata.deltaLink URL-адресе предыдущего вызова функции delta для того же списка календаря, указывающий на завершение этого раунда отслеживания изменений. Сохраните и примените весь @odata.deltaLink URL-адрес, включая этот маркер, в первом запросе следующего раунда отслеживания изменений для этого списка календаря.
$skiptoken string Маркер состояния, возвращенный в @odata.nextLink URL-адресе предыдущего вызова разностной функции, указывающий, что в том же списке календаря необходимо отслеживать дальнейшие изменения.

Параметры запросов OData

Этот метод поддерживает необязательные параметры запроса OData для настройки ответа.

  • Вы можете использовать параметр запроса $select так же, как в любом другом запросе GET, чтобы задать только те свойства, которые необходимы для эффективной работы.
  • Функция delta не поддерживает следующие параметры запроса: $expand, $filter,$orderby$search , и $select.

Заголовки запросов

Имя Тип Описание
Authorization string Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации.
Content-Type string application/json. Обязательный параметр.
Prefer string odata.maxpagesize={x}. Необязательный параметр.

Текст запроса

Не указывайте текст запроса для этого метода.

Отклик

В случае успешного выполнения эта функция возвращает код отклика 200 OK и коллекцию календарей в тексте ответа.

Примеры

Запрос

Ниже показан пример запроса. Параметр отсутствует $select , поэтому набор свойств по умолчанию отслеживается и возвращается.

GET https://graph.microsoft.com/beta/me/calendars/delta

Отклик

Если запрос выполнен успешно, ответ включает маркер состояния, который представляет собой skipToken (в заголовке ответа @odata.nextLink ) или deltaToken (в заголовке ответа @odata.deltaLink ). Соответственно, они указывают, следует ли продолжить цикл или вы завершили получение всех изменений для этого раунда.

В приведенном ниже ответе отображается deltaToken в заголовке ответа @odata.deltaLink .

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#Collection(calendar)",
    "value": [
        {
            "@odata.type": "#microsoft.graph.calendar",
            "id": "AQMkADRhZThkMDVjLTJmNDctNDUyZC05YjA2LTI2YzRmMTIxOWJhZQBGAAADVDIMnvGkNkGo5_ASLe7iUQcAvXegGcyc-0O1dA1ftrtB6QAAAgEGAAAAvXegGcyc-0O1dA1ftrtB6QAAAUSwewAAAA==",
            "name": "Calendar",
            "color": "auto",
            "hexColor": "",
            "groupClassId": "0006f0b7-0000-0000-c000-000000000046",
            "isDefaultCalendar": true,
            "changeKey": "vXegGcyc/0O1dA1ftrtB6QAAAEO+6Q==",
            "canShare": true,
            "canViewPrivateItems": true,
            "isShared": false,
            "isSharedWithMe": false,
            "canEdit": true,
            "calendarGroupId": null,
            "allowedOnlineMeetingProviders": [
                "teamsForBusiness"
            ],
            "defaultOnlineMeetingProvider": "teamsForBusiness",
            "isTallyingResponses": true,
            "isRemovable": false,
            "owner": {
                "name": "Samantha Booth",
                "address": "samanthab@contoso.com"
            }
        },
        {
            "@odata.type": "#microsoft.graph.calendar",
            "id": "AQMkADRhZThkMDVjLTJmNDctNDUyZC05YjA2LTI2YzRmMTIxOWJhZQBGAAADVDIMnvGkNkGo5_ASLe7iUQcAvXegGcyc-0O1dA1ftrtB6QAAAgEGAAAAvXegGcyc-0O1dA1ftrtB6QAAAU4pOwAAAA==",
            "name": "Birthdays",
            "color": "auto",
            "hexColor": "",
            "groupClassId": "0006f0b7-0000-0000-c000-000000000046",
            "isDefaultCalendar": false,
            "changeKey": "vXegGcyc/0O1dA1ftrtB6QAAAEzvog==",
            "canShare": false,
            "canViewPrivateItems": true,
            "isShared": false,
            "isSharedWithMe": false,
            "canEdit": false,
            "calendarGroupId": null,
            "allowedOnlineMeetingProviders": [],
            "defaultOnlineMeetingProvider": "unknown",
            "isTallyingResponses": false,
            "isRemovable": true,
            "owner": {
                "name": "Samantha Booth",
                "address": "samanthab@contoso.com"
            }
        }
    ],
    "@odata.deltaLink": "https://graph.microsoft.com/beta/me/calendars/delta?$deltatoken=LztZwWjo5IivWBhyxw5rAIPrk_3pGHcZr4U33FHo0HpyBLqdo9QZIWfEL4AW1jMLBmo-o1ybmYCWlzQ5elO2bEDejh9Z8kYv_z4nhmHoC5Y.7Wdj3MWiils6M--JMM9dMyiLCh-1he4AZCqBu-8i42o"
}