我是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构建的
非常感谢您的协助。
您可以使用Graph .NET SDK进行两种选择。给定您的代码,其中calendarView
是您对10个项目的初始请求返回的对象:
var nextPage = calendarView.NextPageRequest.GetAsync();
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();