Microsoft Graph API组delta从不返回deltaLink,这将导致无限循环(使用nextLink)

问题描述 投票:0回答:1

我正在使用Microsoft Graph API我正在为组使用Delta API。我为每个组创建一个增量请求(我没有跟踪所有组,仅跟踪特定的组)。

我已经检查了此question并阅读了提及的文档。我已经在GitHub here]上阅读了此问题

我正在与同一个租户一起工作,同时在增量响应方面发展了几个星期。除了一次,它总是几乎按预期工作。当我发出增量请求时,我获得了nextLink,然后跟随它直到获得deltaLink。我说这几乎可以按预期工作,因为很多时候,在对数据进行前/后两次响应后,我大部分时间都得到了另外1-3个下一个没有附加数据的链接。

我上次尝试时,使用nextLink获得了大约150个响应,直到函数超时为止,除了前几个响应之外,所有这些响应都没有数据。

这是一个测试环境,组中有大约30个用户。

我用过

https://graph.microsoft.com/v1.0/groups/delta?$select=id,displayName,members&$filter=id eq 'groupId'`

在无限循环中,这些是我得到的响应类型

{
   "id":"402-xxx-ee0",
   "status":200,
   "headers":{
      "Preference-Applied":"odata.track-changes",
      "Cache-Control":"no-cache",
      "OData-Version":"4.0",
      "Content-Type":"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8"
   },
   "body":{
      "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#groups",
      "@odata.nextLink":"https://graph.microsoft.com/v1.0/groups/delta?$skiptoken=5ZZ_<long_token>_OXWrtiE",
      "value":[

      ]
   }
}

您可以看到它们的值中没有数据,但是我仍然得到nextLink当我关注下一个链接时,我得到

{
   "id":"402-xxx-ee0",
   "status":200,
   "headers":{
      "Preference-Applied":"odata.track-changes",
      "Cache-Control":"no-cache",
      "OData-Version":"4.0",
      "Content-Type":"application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8"
   },
   "body":{
      "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#groups",
      "@odata.nextLink":"https://graph.microsoft.com/v1.0/groups/delta?$skiptoken=5ZZ_<long_token>_DNF5rRE0",
      "value":[

      ]
   }
}

如您所见,另一个响应带有另一个下一个链接(另一个),该链接再次返回空值。

再次发生这种情况,直到我的功能超时。

我希望在没有更多数据的第一个响应之前获得deltaLink,或者在第一个空响应中获得最大值。

我正在使用Microsoft Graph API,正在将Delta API用于组。我为每个组创建一个增量请求(我没有跟踪所有组,仅跟踪特定的组)。我已经检查了这个问题,然后...

microsoft-graph microsoft-graph-delta
1个回答
0
投票

使用空数组作为值和nextlink的响应是身份实体(用户,组,应用程序,服务主体...)的增量功能的正常行为,指示并非所有更改都已枚举,并且更改的复制是发生在后端。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.