Уведомления об изменениях microsoft API Graph

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

REST API Microsoft Graph может доставлять уведомления об изменениях клиентам через различные конечные точки, включая веб-перехватчики, Центры событий и Сетку событий. Сведения о подписке и получении уведомлений для приложения см. в статье Настройка уведомлений об изменениях в данных пользователей.

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

Примечание.

Подписки на ресурсы, помеченные звездочкой (*), доступны только в конечной точке /beta .

Ресурс Поддерживаемые пути к ресурсам Ограничения
Облачная печать printer Изменяется, когда задание печати готово к скачиванию (событие jobFetchable): /print/printers/{id}/jobs -
Облачная печать printTaskDefinition Изменяется при наличии допустимого задания в очереди (событие jobStarted): /print/printtaskdefinition/{id}/tasks -
driveItemна OneDrive (личный) Изменения содержимого в иерархии любой папки: /users/{id}/drive/root -
driveItem в OneDrive для работы или учебы Изменения содержимого в иерархии корневой папки: /drives/{id}/root , /users/{id}/drive/root -
group Изменения во всех группах: /groups

Изменения в определенной группе: /groups/{id}

Изменения владельцев определенной группы: /groups/{id}/owners

Изменения членов определенной группы: /groups/{id}/members
Квоты максимальной подписки:
  • На приложение (для всех клиентов вместе взятых): 50 000 подписок.
  • На клиента (для всех приложений вместе взятых): 1000 подписок во всех приложениях.
  • На одно сочетание приложения и клиента: всего 100 подписок.

    Не поддерживается для Azure AD клиентов B2C.

    ЗАМЕТКА: Создание и обратимое удаление групп также активирует updatedchangeType.
  • список на сайте SharePoint Изменения содержимого в списке: /sites/{site-id}/lists/{list-id} -
    Групповой чат Microsoft 365 Изменения в беседах группы: groups/{id}/conversations -
    Сообщение Outlook Изменения во всех сообщениях в почтовом ящике пользователя: /users/{id}/messages , /me/messages

    Изменения в сообщениях в папке "Входящие" пользователя: /users/{id}/mailFolders('inbox')/messages , /me/mailFolders('inbox')/messages
    Допускается не более 1000 активных подписок на почтовый ящик для всех приложений.
    Событие Outlook Изменения во всех событиях в почтовом ящике пользователя: /users/{id}/events , /me/events Допускается не более 1000 активных подписок на почтовый ящик для всех приложений.
    Личный контакт Outlook Изменения для всех личных контактов в почтовом ящике пользователя: /users/{id}/contacts , /me/contacts Допускается не более 1000 активных подписок на почтовый ящик для всех приложений.
    Оповещение безопасности Изменения в конкретном оповещении: /security/alerts/{id}

    Изменения в отфильтрованных оповещениях: /security/alerts/?$filter={parameters}
    Дополнительные сведения см. в разделе API безопасности оповещения.
    Утверждения Teams Изменения во всех утверждениях в клиенте: /solutions/approval/approvalItems Квоты максимальной подписки:
  • На клиента (для сочетания всех приложений): 1000 подписок всего во всех приложениях
  • Для каждого приложения и клиента: 1 подписка.
  • callRecord в Teams Изменения во всех записях звонков: /communications/callRecords

    Изменения в отфильтрованных записях вызовов: /communications/callRecords?$filter={parameters}
    Дополнительные сведения см. в разделе Уведомления об изменении для записей вызовов.

    Квоты максимальной подписки:
  • На организацию: всего 100 подписок.

    ЗАМЕТКА: Создание записей вызовов также активирует updatedchangeType.
  • Вызовы TeamsRecording Все записи в организации: communications/onlineMeetings/getAllRecordings

    Все записи для определенного собрания: communications/onlineMeetings/{onlineMeetingId}/recordings

    Запись звонка, которая становится доступной на собрании, организованном определенным пользователем: users/{id}/onlineMeetings/getAllRecordings

    Запись звонка, которая становится доступной на собрании, где установлено определенное приложение Teams: appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllRecordings *
    Квоты максимальной подписки:
  • Для каждого приложения и сочетания онлайн-собраний: 1
  • Для каждого приложения и пользователя: 1
  • На пользователя (для записей отслеживания подписок во всех onlineMeetings, организованных пользователем): 10 подписок.
  • На организацию: всего 10 000 подписок.
  • Вызов TeamsTranscript Все расшифровки в организации: communications/onlineMeetings/getAllTranscripts

    Все расшифровки для определенного собрания: communications/onlineMeetings/{onlineMeetingId}/transcripts

    Расшифровка звонка, которая становится доступной на собрании, организованном определенным пользователем: users/{id}/onlineMeetings/getAllTranscripts

    Расшифровка звонка, которая становится доступной на собрании, где установлено определенное приложение Teams: appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllTrancripts *
    Квоты максимальной подписки:
  • Для каждого приложения и сочетания онлайн-собраний: 1
  • Для каждого приложения и пользователя: 1
  • На пользователя (для подписок, отслеживающих расшифровки во всех onlineMeetings, упорядоченных пользователем): 10 подписок.
  • На организацию: всего 10 000 подписок.
  • Чат Teams Изменения в любом чате в клиенте: /chats

    Изменения в конкретном чате: /chats/{id}

    Изменения в определенном чате с параметром запроса notifyOnUserSpecificProperties : /chats/{id}?notifyOnUserSpecificProperties={Boolean}

    Изменения во всех чатах в организации, где установлено определенное приложение Teams: /appCatalogs/teamsApps/{id}/installedToChats

    Изменения во всех чатах, частью которыми является конкретный пользователь: /users/{id}/chats

    Изменения во всех чатах, частью которыми является конкретный пользователь, с помощью параметра запроса notifyOnUserSpecificProperties : /users/{id}/chats?notifyOnUserSpecificProperties={Boolean}
    Квоты максимальной подписки:
  • Для каждого приложения и чата: 1 подписка.
  • На организацию: всего 10 000 подписок.
  • На пользователя (для подписок, отслеживающих все чаты, в которые входит конкретный пользователь): 10 подписок.
  • chatMessage Teams Изменения в сообщениях чата во всех каналах во всех командах: /teams/getAllMessages

    Изменения в сообщениях чата в определенном канале: /teams/{id}/channels/{id}/messages

    Изменения в сообщениях чата во всех чатах: /chats/getAllMessages

    Изменения в сообщениях чата в определенном чате: /chats/{id}/messages

    Изменения в сообщениях чата во всех чатах, в которые входит конкретный пользователь: /users/{id}/chats/getAllMessages

    Изменения в сообщениях чата для всех чатов в организации, где установлено определенное приложение Teams: /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages
    Квоты максимальной подписки:
  • Для каждого приложения и канала или чата: 1 подписка.
  • На пользователя (для подписок, отслеживая сообщения чата во всех чатах, в которые входит пользователь): 10 подписок.
  • На организацию: всего 10 000 подписок.
  • Канал Teams Изменения каналов во всех командах: /teams/getAllChannels

    Изменения канала в определенной команде: /teams/{id}/channels
    Квоты максимальной подписки:
  • Для каждого приложения и команды: 1 подписка.
  • На организацию: всего 10 000 подписок.
  • conversationMember в Teams Изменения членства в определенной команде: /teams/{id}/members

    Изменения членства во всех каналах в определенной команде: teams/{id}/channels/getAllMembers

    Изменения в членстве в определенном чате: /chats/{id}/members

    Изменения в членстве для всех чатов в организации, где установлено определенное приложение Teams: /appCatalogs/teamsApps/{id}/installedToChats/getAllMembers

    Изменения членства во всех чатах: /chats/getAllMembers
    Квоты максимальной подписки:
  • Для каждого приложения и команды: 1 подписка.
  • На организацию: всего 10 000 подписок.
  • Teams onlineMeeting* Изменения в онлайн-собрании: /communications/onlineMeetings(joinWebUrl='{encodedJoinWebUrl}')/meetingCallEvents Не поддерживает использование $select для возврата только выбранных свойств. Расширенное уведомление состоит из всех свойств измененного экземпляра. Одна подписка разрешена для каждого приложения на собрание по сети. Дополнительные сведения см. в разделе Получение уведомлений об изменениях для обновлений событий звонков в Microsoft Teams.
    presence в Teams Изменения в присутствии одного пользователя: /communications/presences/{id}

    Изменения в присутствии нескольких пользователей: /communications/presences?$filter=id in ({id},{id}...)
    Подписка на присутствие нескольких пользователей ограничена 650 отдельными пользователями. Не поддерживает использование $select для возврата только выбранных свойств. Расширенное уведомление состоит из всех свойств измененного экземпляра. Допускается одна подписка на одно приложение на каждого делегированного пользователя. Дополнительные сведения см. в разделе Получение уведомлений об изменениях для обновлений присутствия в Microsoft Teams.
    Команда Teams Изменения в любой команде в клиенте: /teams

    Изменения в конкретной команде: /teams/{id}
    Квоты максимальной подписки:
  • Для каждого приложения и команды: 1 подписка.
  • На организацию: всего 10 000 подписок.
  • Предложение Смены TeamsShiftRequest Изменения в любом запросе на смену предложения в команде: /teams/{id}/schedule/offerShiftRequests Квоты максимальной подписки:
  • Сочетание пути к приложению и ресурсу: 1 подписка на клиент.
  • На путь к ресурсу и сочетание пользователей: 10 делегированных подписок пользователей на клиент.
  • Teams Shifts openShiftChangeRequest Изменения в любом запросе на открытые смены в команде: /teams/{id}/schedule/openShiftChangeRequests Квоты максимальной подписки:
  • Сочетание пути к приложению и ресурсу: 1 подписка на клиент.
  • Для каждого пользователя и пути к ресурсу: 10 подписок.
  • На организацию: всего 10 000 подписок.
  • Смена "Смены" в Teams Изменения в любой смене в команде: /teams/{id}/schedule/shifts Квоты максимальной подписки:
  • Сочетание пути к приложению и ресурсу: 1 подписка на клиент.
  • Для каждого пользователя и пути к ресурсу: 10 подписок.
  • На организацию: всего 10 000 подписок.
  • Teams Shifts swapShiftsChangeRequest Изменения в любом запросе на смену переключения в команде: /teams/{id}/schedule/swapShiftsChangeRequests Квоты максимальной подписки:
  • Сочетание пути к приложению и ресурсу: 1 подписка на клиент.
  • Для каждого пользователя и пути к ресурсу: 10 подписок.
  • На организацию: всего 10 000 подписок.
  • Время смен TeamsOffRequest Изменения в любом запросе на отгул в команде: /teams/{id}/schedule/timeOffRequests Квоты максимальной подписки:
  • Сочетание пути к приложению и ресурсу: 1 подписка на клиент.
  • Для каждого пользователя и пути к ресурсу: 10 подписок.
  • На организацию: всего 10 000 подписок.
  • todoTask Изменения для всех задач в определенном списке задач: /me/todo/lists/{todoTaskListId}/tasks -
    user Изменения для всех пользователей: /users

    Изменения для конкретного пользователя: /users/{id}
    Квоты максимальной подписки:
  • На приложение (для всех клиентов вместе взятых): 50 000 подписок.
  • На клиента (для всех приложений в сочетании): 1000 подписок во всех приложениях
  • На одно сочетание приложения и клиента: всего 100 подписок.

    Не поддерживается для личных учетных записей Майкрософт, таких как outlook.com.

    Не поддерживается для Azure AD клиентов B2C.

    ЗАМЕТКА: Создание и обратимое удаление пользователей также активируют updatedchangeType.
  • Примечание.

    Многие ресурсы имеют ограничения или квоты на количество подписок, которые можно создать для этого ресурса. При превышении этого ограничения попытки создать подписку приведут к возникновению 403 Forbidden ошибки. Свойство message ответа об ошибке будет объяснять превышенное ограничение.

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

    Примечание. Любой путь ресурса, начинающийся с /users/{id}, может принимать /me для указания вошедшего пользователя.

    Разрешения

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

    Тип разрешения Поддерживаемые типы ресурсов
    Делегированное — рабочая или учебная учетная запись alert, callRecording, callTranscript, channel, contact, conversation, conversationMember, driveItem, event, group, list, message, offerShiftRequest, openShiftChangeRequest, shift, swapShiftsChangeRequest, team, timeOffRequest, todoTask, user
    Делегированное — личная учетная запись Майкрософт contact, driveItem, event, list, message, todoTask
    Application alert, callRecord, callRecording, callTranscript, channel, chatMessage, contact, conversationMember, driveItem, event, group, list, message, offerShiftRequest, openShiftChangeRequest, printer, printTaskDefinition, shift, swapShiftsChangeRequest,team, timeOffRequest, пользователь