Graph API日历视图事件分页

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

我是Graph API的新手,需要获取已登录用户的日历事件。我已经按照此article进行了部分工作但我只看到10个事件。

//get calendar events
            var startTime = DateTime.Today.ToString("s");
            var endTime = DateTime.Now.AddDays(7).ToString("s");
            var queryOptions = new List<Microsoft.Graph.QueryOption>()
            {
                new Microsoft.Graph.QueryOption("startDateTime", startTime),
                new Microsoft.Graph.QueryOption("endDateTime", endTime)
            };
            var calendarView = await graphClient.Me.Calendar.CalendarView
            .Request(queryOptions)
            .GetAsync();
            ViewData["Events"] = calendarView;

查看calenderView的属性,我可以看到:{[@ odata.nextLink,https://graph.microsoft.com/beta/me/calendar/calendarView?startDateTime=2020-06-12T00%3a00%3a00&endDateTime=2020-06-19T12%3a49%3a37& $ skip = 10]}

我正在努力了解如何循环浏览页面,以便可以将所有事件返回到我的视图。

我的应用程序是围绕ASP Core 3.1 C#和图3.7.0和1.20.1构建的

非常感谢您的协助。

c# microsoft-graph
1个回答
0
投票

您可以使用Graph .NET SDK进行两种选择。给定您的代码,其中calendarView是您对10个项目的初始请求返回的对象:

自己请求下一页

var nextPage = calendarView.NextPageRequest.GetAsync();

使用SDK的页面迭代器类

var pageIterator = PageIterator<Event>.CreatePageIterator(
    graphClient, calendarView,
    (e) => {
        // Called for each event so you can process
        // Do something with the event here, add to a list,
        // etc.


        return true;
    }
);
await pageIterator.IterateAsync();
© www.soinside.com 2019 - 2024. All rights reserved.