我正在尝试使用 delta 查询来获取其中一个房间日历中的更改,当我使用开始日期和结束日期来设置初始请求时,它会返回正确的事件数据,然后当我下次使用 delta 令牌时发出请求,但它返回带有标签的事件数据,表明该特定事件已被删除,并且除了表单 ID 之外不返回任何有价值的信息。
这是我的代码
private async Task<IEventDeltaCollectionPage> GetEventData(GraphServiceClient graphClient, object deltaLink)
{
IEventDeltaCollectionPage page;
if (lastPage == null)
{
var queryOptions = new List<QueryOption>();
if (deltaLink == null)
{
queryOptions = new List<QueryOption>()
{
new QueryOption("startdatetime", "2020-01-16T00:00:00Z"),
new QueryOption("enddatetime", "2020-01-24T00:00:00Z")
};
}
else
{
queryOptions = new List<QueryOption>()
{
new QueryOption("$deltatoken", deltaLink.ToString())
};
}
page = await graphClient
.Users["nitroom2@domain.onmicrosoft.com"].CalendarView
.Delta()
.Request(queryOptions)
.GetAsync();
}
else
{
lastPage.InitializeNextPageRequest(graphClient, deltaLink.ToString());
page = await lastPage.NextPageRequest.GetAsync();
}
lastPage = page;
return page;
}
如您所见,此代码将查找日期范围或增量令牌。所以我所做的是我最初在没有 delta 令牌的情况下拨打电话,然后一旦我得到最终响应,我就会得到 delta 令牌。这次我重新启动应用程序并提供硬编码的增量令牌。在重新启动应用程序之前,我还要确保在房间日历中创建或更新了一个新事件,然后我使用 delta 令牌重新启动应用程序。我收到了一些事件数据的回复,但这告诉我该事件已被删除,但事实并非如此。
不知道我在这里错过了什么。有人可以建议吗?