Тип ресурса subscription

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

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

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

Методы

Метод Возвращаемый тип Описание
Список subscription Перечисление активных подписок.
Создание subscription Создает подписку для приложения прослушивателя, позволяющую получать уведомления об изменениях данных в Microsoft Graph. Когда сценарий susbcription создан и успешно оценен, Microsoft Graph отправляет приложению по крайней мере один объект changeNotificationCollection каждый раз, когда в ресурсе, на который имеется подписка, происходит изменение.
Получение subscription Чтение свойств и связей объекта subscription.
Обновление subscription Обновляет время окончания срока действия подписки для продления и/или обновляет URL-адрес уведомления для доставки.
Delete Нет Удаление объекта subscription.
Повторная авторизация Нет Повторная авторизация подписки при получении запроса ReauthorizationRequired .
Получить VAPID String Получите открытый ключ VAPID для создания подписки в соответствии с RFC 8292.

Свойства

Свойство Тип Описание
applicationId String Необязательный параметр. Идентификатор приложения, использованного для создания подписки. Только для чтения.
changeType Строка Обязательный. Указывает тип изменения в ресурсе, на который вы подписаны, которое вызывает уведомление об изменении. Поддерживаемые значения: created, updated, deleted. Вы можете объединить несколько значений, указав их в списке с разделителями-запятыми.

Примечание.
  • Уведомления об изменении корневого элемента диска и списка поддерживают только changeType updated.
  • Уведомления об изменении пользователей и групп поддерживают changeType updated и deleted. Используется updated для получения уведомлений при создании, обновлении или обратимом удалении пользователя или группы. Используется deleted для получения уведомлений, когда пользователь или группа окончательно удаляются.
  • clientState String Необязательно. Указывает значение свойства clientState, отправляемого службой в каждом уведомлении об изменении. Максимальная длина — 128 символов. Клиент может проверить, пришло ли уведомление об изменении от службы, сравнив значение свойства clientState, отправленного с подпиской, со значением свойства clientState, получаемого с каждым уведомлением об изменении.
    creatorId String Необязательный параметр. Идентификатор пользователя или субъекта-службы, которые создали подписку. Если приложение использовало делегированные разрешения для создания подписки, это поле содержит идентификатор вошедшего в систему пользователя, от имени которого приложение призвало его. Если приложение использовало разрешения приложения, это поле содержит идентификатор субъекта-службы, соответствующего приложению. Только для чтения.
    encryptionCertificate Строка Необязательный параметр. Представление в кодировке Base64 сертификата с открытым ключом, используемое для шифрования данных ресурса в уведомлениях об изменениях. Необязательный, но необходимый при includeResourceData равном true.
    encryptionCertificateId String Необязательный параметр. Предоставляемый приложением настраиваемый идентификатор, помогающий определить сертификат, необходимый для расшифровки данных ресурса.
    expirationDateTime DateTimeOffset Обязательное. Указывает дату и время истечения срока действия подписки на веб-перехватчик. Используется время в формате UTC, и оно может представлять собой время с момента создания подписки, которое зависит от ресурса, на который оформлена подписка. Для любого значения, оставшегося менее 45 минут после времени запроса, автоматически устанавливается значение 45 минут после времени запроса. Максимальный поддерживаемый срок подписки см. в разделе "Срок действия подписки".
    id String Необязательный параметр. Уникальный идентификатор для подписки. Только для чтения.
    includeResourceData Boolean Необязательное свойство. Если присвоено значение true, уведомления об изменениях включают данные ресурса (например, содержимое сообщения чата).
    latestSupportedTlsVersion Строка Необязательный параметр. Указывает последнюю версию протокола TLS, поддерживаемую конечной точкой уведомлений, указанной с помощью свойства notificationUrl. Допустимые значения: v1_0, v1_1, v1_2, v1_3.

    Для подписчиков, конечная точка уведомления которых поддерживает версию ниже, чем рекомендуемая в настоящее время (TLS 1.2), указание этого свойства на заданной временной шкале позволяет им временно использовать устаревшую версию TLS до завершения обновления до TLS 1.2. Если такие подписчики не настроят это свойство согласно соответствующим срокам, действия с подпиской будут завершаться сбоем.

    Для подписчиков, конечная точка уведомлений которых уже поддерживает TLS 1.2, настройка этого свойства является необязательной. В таких случаях Microsoft Graph по умолчанию присваивает свойству значение v1_2.
    lifecycleNotificationUrl String Требуется для ресурсов Teams, expirationDateTime если значение будет более чем через 1 час; в противном случае необязательно. URL-адрес конечной точки, которая получает уведомления о жизненном цикле, включая subscriptionRemoved, reauthorizationRequiredи missed уведомления. Этот URL-адрес должен использовать протокол HTTPS. Дополнительные сведения см. в статье "Сокращение количества отсутствующих подписок и уведомлений об изменениях".
    notificationQueryOptions Строка Необязательный параметр. Параметры запросов OData для указания значения целевого ресурса. Клиенты получают уведомления, когда ресурс переходит в состояние, соответствующее указанным здесь параметрам запроса. Благодаря этому новому свойству в полезной нагрузке создания подписки наряду со всеми существующими свойствами веб-перехватчики доставляют уведомления всякий раз, когда ресурс достигает желаемого состояния, упомянутого в свойстве notificationQueryOptions. Например, по окончании печати или когда свойство ресурса печати isFetchable приобретает значение true и т.п.

    Поддерживается только для службы универсальной печати. Дополнительные сведения см. в статье "Подписка на уведомления об изменениях от API облачной печати с помощью Microsoft Graph".
    notificationUrl Строка Обязательный. URL-адрес конечной точки, которая получает уведомления об изменениях. Этот URL-адрес должен использовать протокол HTTPS. Любой параметр строки запроса, включенный в свойство notificationUrl, включается в запрос HTTP POST, когда Microsoft Graph отправляет уведомления об изменениях.
    notificationUrlAppId String Необязательный параметр. Идентификатор приложения, который служба подписки может использовать для создания маркера проверки. Это значение позволяет клиенту проверить подлинность полученного уведомления.
    resource Строка Обязательный. Указывает ресурс, изменения в котором отслеживаются. Не указывайте базовый URL-адрес (https://graph.microsoft.com/v1.0/). См. возможные значения пути к ресурсу для всех поддерживаемых ресурсов.
    vapidPublicKey String Необязательный параметр. Открытый ключ VAPID сервера приложений, кодированный base64url (несжатая точка P-256, предварительное кодирование 65 байт). Получается путем вызова функции getVapidPublicKey коллекции подписок. Браузер передает это значение, чтобы PushManager.subscribe({ applicationServerKey: vapidPublicKey }) привязать push-подписку к этому удостоверению сервера. Требуется, если notificationUrl нацелен на известный источник службы Web Push (например, *.push.apple.com, fcm.googleapis.com, updates.push.services.mozilla.com); отклоняется 400 Bad Request , если указан в стандартной подписке веб-перехватчика. Дополнительные сведения см. в RFC 8292.
    webPushEncryptionP256dhPublicKey String Необязательный параметр. Открытый ключ ECDH абонента, кодированный base64url (несжатая точка P-256, предварительное кодирование 65 байт). Получено из браузера с помощью PushSubscription.getKey('p256dh'). Используется в качестве открытого ключа однорангового узла при согласовании ключа ECDH для получения ключа шифрования содержимого каждого сообщения для шифрования полезных данных RFC 8291. Необходимо, если notificationUrl нацелен на известный источник службы Web Push; Отклонено, 400 Bad Request если оно предоставляется в стандартной подписке веб-перехватчика. Дополнительные сведения см. в RFC 8291, раздел 3.
    webPushEncryptionSecret String Необязательный параметр. Секрет проверки подлинности подписчика, кодированный base64url (предварительная кодировка 16 байт). Получено из браузера с помощью PushSubscription.getKey('auth'). Используется в качестве соли HMAC-SHA-256 для шага объединения HKDF, который получает материал ключа для шифрования полезных данных RFC 8291. Только запись: это значение никогда не возвращается в ответах GET (возвращается в виде null). Относитесь как к секрету. Необходимо, если notificationUrl нацелен на известный источник службы Web Push; Отклонено, 400 Bad Request если оно предоставляется в стандартной подписке веб-перехватчика. Дополнительные сведения см. в RFC 8291, раздел 3.

    Время существования подписки

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

    Кроме того, для любого запроса, для которого срок действия DateTime установлен менее чем на 45 минут после времени запроса, автоматически устанавливается на 45 минут после времени запроса.

    В следующей таблице показано максимальное время окончания срока действия подписок на ресурс в Microsoft Graph.

    Ресурс Максимальный срок действия
    Copilot aiInteraction 4 320 минут (три дня)
    Оповещение безопасности 43 200 минут (менее 30 дней)
    Утверждения Teams 43 200 минут (менее 30 дней)
    callRecord в Teams 4 230 минут (менее трех дней)
    Запись звонка Teams 4 320 минут (три дня)
    Вызов TeamsРасшифровка 4 320 минут (три дня)
    Канал Teams 4 320 минут (три дня)
    Чат Teams 4 320 минут (три дня)
    chatMessage Teams 4 320 минут (три дня)
    conversationMember в Teams 4 320 минут (три дня)
    onlineMeeting в Teams 4 320 минут (три дня)
    Команда Teams 4 320 минут (три дня)
    TeamsAppInstallation 4 320 минут (3 дня)
    Приложение "Смены " в Teams offerShiftRequest 360 минут (6 часов)
    Приложение "Смены" в Teams openShiftChangeRequest 360 минут (6 часов)
    Смена в Teams 360 минут (6 часов)
    Смены Teams swapShiftsChangeRequest 360 минут (6 часов)
    Смены Teams timeOffRequest 360 минут (6 часов)
    Групповая беседа 4 230 минут (менее трех дней)
    driveItem OneDrive 42 300 минут (менее 30 дней)
    Список SharePoint 42 300 минут (менее 30 дней)
    Сообщение, событие, контакт Outlook 10 080 минут (менее семи дней)

    Для подписок с данными о ресурсах (подписки на расширенные уведомления) срок действия подписки составляет 1440 минут (до одного дня).
    Пользователь, группа, другие ресурсы каталога 41 760 минут (менее 29 дней)
    onlineMeeting 4 230 минут (менее трех дней)
    presence 60 минут (1 час)
    printer печати 4 230 минут (менее трех дней)
    printTaskDefinition печати 4 230 минут (менее трех дней)
    todoTask 4 230 минут (менее трех дней)

    Веб-перехватчики для этого ресурса доступны только в глобальной конечной точке, но не в национальных облаках.
    Оповещение мониторинга работоспособности Microsoft Entra 42 300 минут (менее 30 дней)
    baseTask (не рекомендуется) 4 230 минут (менее трех дней)

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

    Задержка

    В следующей таблице указаны ожидаемые задержки между возникновением события в службе и доставкой уведомления об изменении.

    Ресурс Средняя задержка Максимальная задержка
    aiInteraction Менее 10 секунд 60 минут
    Оповещение1 Менее 3 минут 5 минут
    Утверждения Менее 10 секунд 40 секунд
    calendar Менее 1 минуты 3 минуты
    callRecord2 Менее 30 минут 150 минут
    callRecording Менее 10 секунд 60 минут
    callTranscript Менее 10 секунд 60 минут
    channel Менее 10 секунд 60 минут
    chat Менее 10 секунд 60 минут
    chatMessage Менее 10 секунд 1 минута
    contact Менее 1 минуты 3 минуты
    conversation Неизвестно Неизвестно
    conversationMember Менее 10 секунд 60 минут
    driveItem Менее 1 минуты 6 часов
    event Неизвестно Неизвестно
    group Неизвестно Неизвестно
    оповещение мониторинга работоспособности Неизвестно Неизвестно
    list Менее 1 минуты 6 часов
    message Менее 1 минуты 3 минуты
    offerShiftRequest Менее 1 минуты 60 минут
    onlineMeeting Менее 10 секунд 1 минута
    openShiftChangeRequest Менее 1 минуты 60 минут
    presence Менее 10 секунд 1 минута
    printer Менее 1 минуты 5 минут
    printTaskDefinition Менее 1 минуты 5 минут
    shift Менее 1 минуты 60 минут
    swapShiftsChangeRequest Менее 1 минуты 60 минут
    team Менее 10 секунд 60 минут
    teamsAppInstallation Менее 10 секунд 60 минут
    timeOffRequest Менее 1 минуты 60 минут
    todoTask Менее 2 минут 15 минут
    user Неизвестно Неизвестно

    1 Задержка, предусмотренная для ресурса оповещения , применима только после создания оповещения. Сюда не входит время, необходимое правилу для создания оповещения на основе данных. 2 Задержка, предусмотренная для ресурса callRecord , применима только к первой версии записи звонка. Последующие версии записи звонка могут обновляться сверх заявленных задержек.

    Связи

    Отсутствуют.

    Представление JSON

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

    {
      "@odata.type": "#microsoft.graph.subscription",
      "applicationId": "String",
      "changeType": "String",
      "clientState": "String",
      "creatorId": "String",
      "encryptionCertificate": "String",
      "encryptionCertificateId": "String",
      "expirationDateTime": "String (timestamp)",
      "id": "String (identifier)",
      "includeResourceData": "Boolean",
      "latestSupportedTlsVersion": "String",
      "lifecycleNotificationUrl": "String",
      "notificationQueryOptions": "String",
      "notificationUrl": "String",
      "notificationUrlAppId": "String",
      "resource": "String",
      "vapidPublicKey": "String",
      "webPushEncryptionP256dhPublicKey": "String",
      "webPushEncryptionSecret": "String"
    }