Получение уведомлений об изменениях с помощью API Microsoft Graph
Пространство имен: microsoft.graph
Важно!
API версии /beta
в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.
Предостережение
Существующие приложения, использующие эту функцию с baseTask или baseTaskList , должны быть обновлены, так как набор API задач, основанный на этих ресурсах, устарел с 31 мая 2022 г. Этот набор API прекратит возвращать данные 31 августа 2022 г. Используйте набор API, основанный на todoTask.
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 |
Квоты максимальной подписки: Не поддерживается для Azure AD клиентов B2C. ЗАМЕТКА: Создание и обратимое удаление групп также активирует updated changeType. |
список на сайте 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 |
Квоты максимальной подписки: |
callRecord в Teams | Изменения во всех записях звонков: /communications/callRecords Изменения в отфильтрованных записях вызовов: /communications/callRecords?$filter={parameters} |
Дополнительные сведения см. в разделе Уведомления об изменении для записей вызовов. Квоты максимальной подписки: ЗАМЕТКА: Создание записей вызовов также активирует updated changeType. |
Вызовы TeamsRecording | Все записи в организации: communications/onlineMeetings/getAllRecordings Все записи для определенного собрания: communications/onlineMeetings/{onlineMeetingId}/recordings Запись звонка, которая становится доступной на собрании, организованном определенным пользователем: users/{id}/onlineMeetings/getAllRecordings Запись звонка, которая становится доступной на собрании, где установлено определенное приложение Teams: appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllRecordings * |
Квоты максимальной подписки: |
Вызов TeamsTranscript | Все расшифровки в организации: communications/onlineMeetings/getAllTranscripts Все расшифровки для определенного собрания: communications/onlineMeetings/{onlineMeetingId}/transcripts Расшифровка звонка, которая становится доступной на собрании, организованном определенным пользователем: users/{id}/onlineMeetings/getAllTranscripts Расшифровка звонка, которая становится доступной на собрании, где установлено определенное приложение Teams: appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllTrancripts * |
Квоты максимальной подписки: |
Чат Teams | Изменения в любом чате в клиенте: /chats Изменения в конкретном чате: /chats/{id} Изменения в определенном чате с параметром запроса notifyOnUserSpecificProperties : /chats/{id}?notifyOnUserSpecificProperties={Boolean} Изменения во всех чатах в организации, где установлено определенное приложение Teams: /appCatalogs/teamsApps/{id}/installedToChats Изменения во всех чатах, частью которыми является конкретный пользователь: /users/{id}/chats Изменения во всех чатах, частью которыми является конкретный пользователь, с помощью параметра запроса notifyOnUserSpecificProperties : /users/{id}/chats?notifyOnUserSpecificProperties={Boolean} |
Квоты максимальной подписки: |
chatMessage Teams | Изменения в сообщениях чата во всех каналах во всех командах: /teams/getAllMessages Изменения в сообщениях чата в определенном канале: /teams/{id}/channels/{id}/messages Изменения в сообщениях чата во всех чатах: /chats/getAllMessages Изменения в сообщениях чата в определенном чате: /chats/{id}/messages Изменения в сообщениях чата во всех чатах, в которые входит конкретный пользователь: /users/{id}/chats/getAllMessages Изменения в сообщениях чата для всех чатов в организации, где установлено определенное приложение Teams: /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages |
Квоты максимальной подписки: |
Канал Teams | Изменения каналов во всех командах: /teams/getAllChannels Изменения канала в определенной команде: /teams/{id}/channels |
Квоты максимальной подписки: |
conversationMember в Teams | Изменения членства в определенной команде: /teams/{id}/members Изменения членства во всех каналах в определенной команде: teams/{id}/channels/getAllMembers Изменения в членстве в определенном чате: /chats/{id}/members Изменения в членстве для всех чатов в организации, где установлено определенное приложение Teams: /appCatalogs/teamsApps/{id}/installedToChats/getAllMembers Изменения членства во всех чатах: /chats/getAllMembers |
Квоты максимальной подписки: |
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} |
Квоты максимальной подписки: |
Предложение Смены TeamsShiftRequest | Изменения в любом запросе на смену предложения в команде: /teams/{id}/schedule/offerShiftRequests |
Квоты максимальной подписки: |
Teams Shifts openShiftChangeRequest | Изменения в любом запросе на открытые смены в команде: /teams/{id}/schedule/openShiftChangeRequests |
Квоты максимальной подписки: |
Смена "Смены" в Teams | Изменения в любой смене в команде: /teams/{id}/schedule/shifts |
Квоты максимальной подписки: |
Teams Shifts swapShiftsChangeRequest | Изменения в любом запросе на смену переключения в команде: /teams/{id}/schedule/swapShiftsChangeRequests |
Квоты максимальной подписки: |
Время смен TeamsOffRequest | Изменения в любом запросе на отгул в команде: /teams/{id}/schedule/timeOffRequests |
Квоты максимальной подписки: |
todoTask | Изменения для всех задач в определенном списке задач: /me/todo/lists/{todoTaskListId}/tasks |
- |
user | Изменения для всех пользователей: /users Изменения для конкретного пользователя: /users/{id} |
Квоты максимальной подписки: Не поддерживается для личных учетных записей Майкрософт, таких как outlook.com. Не поддерживается для Azure AD клиентов B2C. ЗАМЕТКА: Создание и обратимое удаление пользователей также активируют updated changeType. |
Примечание.
Многие ресурсы имеют ограничения или квоты на количество подписок, которые можно создать для этого ресурса. При превышении этого ограничения попытки создать подписку приведут к возникновению 403 Forbidden
ошибки. Свойство message ответа об ошибке будет объяснять превышенное ограничение.
Некоторые из этих ресурсов поддерживают расширенные уведомления (уведомления с данными ресурсов). Дополнительные сведения о ресурсах, поддерживающих расширенные уведомления, см. в статье Настройка уведомлений об изменениях, включающих данные ресурсов.
Примечание. Любой путь ресурса, начинающийся с
/users/{id}
, может принимать/me
для указания вошедшего пользователя.
Разрешения
Как правило, для операций с подпиской требуется разрешение на чтение ресурса. Например, чтобы получать уведомления о сообщениях, приложению требуется Mail.Read
разрешение. В статье о создании подписки перечислены разрешения, необходимые для каждого типа ресурсов. В следующей таблице перечислены типы разрешений, которые приложение может запрашивать для использования веб-перехватчиков для определенных типов ресурсов.
Тип разрешения | Поддерживаемые типы ресурсов |
---|---|
Делегированное — рабочая или учебная учетная запись | alert, callRecording, callTranscript, channel, chat, chatMessage (preview), contact, conversationMember, driveItem, event, group, list, message, offerShiftRequest, openShiftChangeRequest, presence, shift, swapShiftsChangeRequest, team, timeOffRequest, todoTask, user, baseTask (не рекомендуется) |
Делегированное — личная учетная запись Майкрософт | contact, driveItem, event, list, message, todoTask, baseTask (не рекомендуется) |
Приложение | alert, callRecord, approvals, callRecording, callTranscript, channel, chatMessage, contact, conversationMember, driveItem, event, group, list, message, offerShiftRequest, onlineMeeting, openShiftChangeRequest, printer, printTaskDefinition, shift, swapShiftsChangeRequest, team, timeOffRequest, user |