2

尝试从 Office 365 日历中获取事件时遇到问题问题是我只能获取 10 个事件,并且 eventsResult.MorePagesAvailable 始终为 false

我一个月有超过 50 次会议,而 eventsResult 只获取 10

获取事件的代码:-

 var eventSource = service.Me.Calendar.Events;

 if (!String.IsNullOrEmpty(calendarId))
                {
  eventSource = service.Me.Calendars[calendarId].GetCalendarView(lowerBounday, upperBoundary);
   // lowerBounday - Start Date for fetching events from calendar
   // upperBoundary - End Date for fetching events from calendar

  var eventsResult = await (from i in eventSource orderby i.Start select i).ExecuteAsync();
 }

获取所有日历也会出现同样的问题,我在 Office 365 中有更多的 10 个日历,但在 MorePagesAvailable 为 false 的情况下仍然只有 10 个。获取所有日历的代码:-

 var allCalendars = await service.Me.Calendars.ExecuteAsync();
 bool checkNextPage = false;
                do
 {
  if (checkNextPage && allCalendars.MorePagesAvailable)
  {
   allCalendars = await allCalendars.GetNextPageAsync();
  }
  foreach (ICalendar calendar in allCalendars.CurrentPage)
  {
   lock (calendars)
   {
    calendars.Add(new CalendarData(calendar.Name, calendar.Id)
    {
     HasWriteAccess = true,
     IsFreeBusy = true
    });
   }
  }
  if(!checkNextPage)
   checkNextPage = true;
 } while(allCalendars.MorePagesAvailable)

我们为此代码使用 Microsoft.Office365 DLL 的 1.0.35 版。直到 2015 年 9 月 10 日,它都运行良好。API 是否有任何变化,或者我们遗漏了什么?任何帮助将非常感激。

4

2 回答 2

1

事实证明,这是我们的工程师正在研究的一个已知问题。带来不便敬请谅解!

更新:修复正在准备中。我@odata.nextLink在我的租户上看到了响应,所以看起来它正在攻击生产中的服务器。

于 2015-09-15T16:59:35.710 回答
-1

10 is the default number. You need to use somthing like this https://outlook.office.com/api/v1.0/me/messages?$top=number number= 5, 10...how many events you want. More details:https://msdn.microsoft.com/office/office365/APi/complex-types-for-mail-contacts-calendar#UseODataqueryparametersPageresults

于 2015-09-15T10:09:10.260 回答