0

我正在尝试使用 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 令牌重新启动应用程序。我收到了一些事件数据的回复,但这告诉我该事件已被删除,但事实并非如此。

在此处输入图像描述

不知道我在这里错过了什么。有人可以建议吗?

4

0 回答 0