Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пространство имен: microsoft.graph
Получение новых, обновленных или удаленных групп, включая изменения членства в группах, без необходимости выполнения полного чтения всей коллекции групп. Дополнительные сведения см. в статье "Использование разностного запроса для отслеживания изменений в данных Microsoft Graph ".
Этот API доступен в следующих национальных облачных развертываниях.
| Глобальное обслуживание | Правительство США L4 | Правительство США L5 (DOD) | Китай, обслуживаемый 21Vianet |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
Разрешения
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более высокий уровень привилегий или разрешений, только если это требуется вашему приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в статье Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
| Тип разрешения | Разрешения с наименьшим объемом привилегий | Разрешения с более высоким уровнем привилегий |
|---|---|---|
| Делегированные (рабочая или учебная учетная запись) | Group-NestingSupport.ReadWrite.All | Group.ReadBasic.All, Directory.Read.All, Directory.ReadWrite.All, Group.Read.All, Group.ReadWrite.All, GroupMember.Read.All |
| Делегированные (личная учетная запись Майкрософт) | Не поддерживается. | Не поддерживается. |
| Приложение | Group-NestingSupport.ReadWrite.All | Group.ReadBasic.All, Directory.Read.All, Directory.ReadWrite.All, Group.Read.All, Group.ReadWrite.All, GroupMember.Read.All |
HTTP-запрос
Чтобы начать отслеживание изменений, вы можете создать запрос и включить функцию delta в ресурс groups.
GET /groups/delta
Параметры запроса
Для отслеживания изменений в группах выполняется один или несколько вызовов дельта-функции . Если вы используете параметры запроса, отличные от $deltatoken и $skiptoken, их необходимо указать в начальном запросе delta. Microsoft Graph автоматически кодирует указанные параметры в маркере, входящем в состав URL-адреса @odata.nextLink или @odata.deltaLink, включенного в отклик.
Параметры запроса нужно указать только один раз в первом запросе.
Копируйте и применяйте URL-адрес @odata.nextLink или @odata.deltaLink из предыдущего ответа в последующих запросах, так как в нем уже содержаться закодированные параметры.
| Параметр запроса | Тип | Описание |
|---|---|---|
| $deltatoken | string |
Маркер состояния, возвращаемый в @odata.deltaLink URL-адресе предыдущего вызова разностной функции для той же коллекции групп, указывает на завершение этого раунда отслеживания изменений. Сохраните URL-адрес @odata.deltaLink с этим токеном и примените его в первом запросе следующего цикла отслеживания изменений для этой коллекции. |
| $skiptoken | строка | Этот токен состояния возвращается в URL-адресе @odata.nextLink предыдущего вызова функции delta и указывает, что из коллекции групп получены не все изменения. |
Параметры запросов OData
Этот метод поддерживает необязательные параметры запроса OData, что помогает настроить ответ.
- Вы можете использовать параметр запроса
$selectтак же, как в любом другом запросе GET, чтобы задать только те свойства, которые необходимы для эффективной работы. Свойство id возвращается всегда. - Можно использовать
$select=membersдля получения изменений статуса.- Кроме того, можно отслеживать другие изменения, например право собственности и т. д., выбрав любую групповую связь типа семейства directoryObject.
- Возвращается только свойство id связанного ресурса.
- Следующие функции
$filterподдержки ограничены.- Единственное поддерживаемое выражение
$filterпредназначено для отслеживания изменений в определенном объекте:$filter=id+eq+{value}. Допускается фильтрация нескольких объектов. Например,https://graph.microsoft.com/v1.0/groups/delta/?$filter=id eq '477e9fc6-5de7-4406-bb2a-7e5c83c9ffff' or id eq '004d6a07-fe70-4b92-add5-e6e37b8affff'. Максимальное количество фильтруемых объектов: 50.
- Единственное поддерживаемое выражение
Заголовки запросов
| Имя | Описание |
|---|---|
| Авторизация | Bearer {token}. Обязательно. Дополнительные сведения об аутентификации и авторизации. |
| Content-Type | application/json |
| Prefer | return=minimal Указание этого заголовка с запросом, использующим параметр @odata.deltaLink, приведет к возвращению только свойств объекта, измененных с момента последнего цикла. Необязательно. |
Текст запроса
Не указывайте текст запроса для этого метода.
Отклик
В случае успешного выполнения этот метод возвращает код отклика 200 OK и объект коллекции group в тексте отклика. Ответ также содержит маркер состояния, который является URL-адресом @odata.nextLink или URL-адресом @odata.deltaLink .
Если возвращается URL-адрес
@odata.nextLink:- Это означает, что в сеансе требуется извлечь дополнительные страницы данных. Приложение продолжает отправлять запросы, используя URL-адрес
@odata.nextLink, пока в отклик не будет включен URL-адрес@odata.deltaLink. - Отклик включает тот же набор свойств, что и начальный разностный запрос. Это позволяет фиксировать полное текущее состояние объектов при запуске разностного цикла.
- Это означает, что в сеансе требуется извлечь дополнительные страницы данных. Приложение продолжает отправлять запросы, используя URL-адрес
Если возвращается URL-адрес
@odata.deltaLink:- Это означает, что данных о существующем состоянии возвращаемого ресурса больше нет. Сохраните и используйте URL-адрес
@odata.deltaLink, чтобы узнавать об изменениях ресурса в следующем цикле. - Вы можете указать заголовок
Prefer:return=minimal, чтобы включить в значения отклика только свойства, измененные с момента создания@odata.deltaLink.
- Это означает, что данных о существующем состоянии возвращаемого ресурса больше нет. Сохраните и используйте URL-адрес
По умолчанию: возвращение свойств, совпадающих с начальным разностным запросом
По умолчанию запросы с использованием @odata.deltaLink или @odata.nextLink возвращают те же свойства, которые выбраны в начальном разностном запросе, следующим образом:
- Если свойство изменилось, в отклике содержится новое значение. Сюда включаются свойства с заданным значением NULL.
- Если свойство не изменилось, в ответ включается старое значение.
- Если свойство ранее никогда не настраивалось, оно не включается в отклик.
Примечание. При таком поведении просмотр отклика не дает возможность определить, изменилось ли свойство. Кроме того, дельта-ответы имеют тенденцию быть большими, поскольку они содержат все значения свойств, как показано во втором примере ниже.
Альтернатива: возвращение только измененных свойств
Добавление необязательного заголовка запроса prefer:return=minimal приводит к следующему результату:
- Если свойство изменилось, в отклике содержится новое значение. Сюда включаются свойства с заданным значением NULL.
- Если свойство не изменилось, оно вообще не включается в ответ. (Отличается от поведения по умолчанию.)
Примечание. Заголовок можно добавить в запрос
@odata.deltaLinkв любой момент разностного цикла. Заголовок влияет только на набор свойств, включенных в ответ, и не влияет на выполнение разностного запроса. См. третий пример ниже.
Пример
Запрос 1
Ниже показан пример запроса. Параметр отсутствует $select , поэтому отслеживается и возвращается набор свойств по умолчанию.
GET https://graph.microsoft.com/v1.0/groups/delta
Отклик 1
Вот пример ответа при использовании @odata.deltaLink , полученного при инициализации запроса.
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
Обратите внимание на наличие свойства members@delta , которое включает идентификаторы объектов-членов в группе.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#groups","@odata.nextLink":"https://graph.microsoft.com/v1.0/groups/delta?$skiptoken=pqwSUjGYvb3jQpbwVAwEL7yuI3dU1LecfkkfLPtnIjvY1FSSc_",
"value":[
{
"createdDateTime":"2021-03-12T10:36:14Z",
"description":"This is the default group for everyone in the network",
"displayName":"All Company",
"groupTypes": [
"Unified"
],
"mail": "allcompany@contoso.com",
"members@delta": [
{
"@odata.type": "#microsoft.graph.user",
"id": "693acd06-2877-4339-8ade-b704261fe7a0"
},
{
"@odata.type": "#microsoft.graph.user",
"id": "49320844-be99-4164-8167-87ff5d047ace"
}
]
}
]
}
Запрос 2
В следующем примере показан начальный запрос, выбирающий три свойства для отслеживания изменений с поведением ответа по умолчанию:
GET https://graph.microsoft.com/v1.0/groups/delta?$select=displayName,description,mailNickname
Отклик 2
Вот пример ответа при использовании @odata.deltaLink , полученного при инициализации запроса. Все три свойства включены в ответ, и неизвестно, какие именно из них изменились с момента получения @odata.deltaLink .
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#groups",
"@odata.nextLink":"https://graph.microsoft.com/v1.0/groups/delta?$skiptoken=pqwSUjGYvb3jQpbwVAwEL7yuI3dU1LecfkkfLPtnIjsXoYQp_dpA3cNJWc",
"value": [
{
"displayName": "All Company",
"description": null,
"mailNickname": "allcompany@contoso.com"
}
]
}
Запрос 3
В следующем примере показан начальный запрос, выбирающий три свойства для отслеживания изменений с альтернативным минимальным ответом:
GET https://graph.microsoft.com/v1.0/groups/delta?$select=displayName,description,mailNickname
Prefer: return=minimal
Отклик 3
Вот пример ответа при использовании @odata.deltaLink , полученного при инициализации запроса. Свойство mailNickname не включено (это значит, что оно не менялось со времени последнего разностного запроса); displayName и description включено, что означает, что их значения изменились.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#groups",
"@odata.nextLink":"https://graph.microsoft.com/v1.0/groups/delta?$skiptoken=pqwSUjGYvb3jQpbwVAwEL7yuI3dU1LecfkkfLPtnIjsXoYQp_dpA3cNJWc",
"value": [
{
"displayName": "Everyone",
"description": null
}
]
}