我正在使用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用于组。我为每个组创建一个增量请求(我没有跟踪所有组,仅跟踪特定的组)。我已经检查了这个问题,然后...
使用空数组作为值和nextlink的响应是身份实体(用户,组,应用程序,服务主体...)的增量功能的正常行为,指示并非所有更改都已枚举,并且更改的复制是发生在后端。