在使用Microsoft Graph Explorer时,我注意到当您提交诸如https://graph.microsoft.com/beta/groups/delta之类的组增量请求时,您将获得一个@ odata.nextLink响应。但是,当我遵循提供的链接时,如果我继续关注这些链接,则会开始获得与上一个响应完全相同的一组组,并带有另一个@ odata.nextLink,从而导致无限递归。预期的行为是在某个时候获取@ odata.deltaLink,但永远不会到达收到的响应中。我的Azure环境中有63个组。
尝试从查询中排除成员,但发送https://graph.microsoft.com/v1.0/groups/delta?$ select = displayName。在这种情况下,我在跟随@ odada.nextLink一次之后,在第二页上获得了@ odata.deltaLink。
答案 0 :(得分:1)
好的,我想出了解决问题的方法。当Delta更改返回具有超过1000个成员的组时,则返回相同的数据集,但添加其余成员。看来这是一个无限循环,但实际上正在带来其余成员。然后,如果使用不扩展成员的select进行查询,则可以避免无限循环。
https://docs.microsoft.com/en-us/graph/delta-query-groups#paging-through-members-in-a-large-group
答案 1 :(得分:0)
Stack是询问此类问题的正确场所。我们的github问题是引发内容问题,而不是问如何使用API本身。
有一个特定的文档,可以在我们的文档https://docs.microsoft.com/en-us/graph/delta-query-groups
中向您展示如何对groups api进行更改致电时,您会得到第一个结果。
GET https://graph.microsoft.com/v1.0/groups/delta?$select=displayName,description&$expand=members
然后,您下次将调用@ odata.nextLink,而不是在下一次进行完全相同的调用,而在上面的请求响应中返回的@ odata.nextLink包含跳过令牌。
GET https://graph.microsoft.com/v1.0/groups/delta?$skiptoken=pqwSUjGYvb3jQpbwVAwEL7yuI3dU1LecfkkfLPtnIjvB7XnF_yllFsCrZJ
第三个调用,您将从第二个响应中调用@ odata.nextLink。这些请求之间的@ odata.nextLink应该不同。