Microsoft Graph API CalendarView是否限于一个月?如何获得所有事件



Microsoft Graph API CalendarView限制为一个月?我如何获得所有活动?有一些隐式分页吗?

我首先检查 2017-01-01 2018-12-30 之间的事件的JSON输出:

https://graph.microsoft.com/v1.0/me/calendar/calendarView?startDateTime=2017-01-01T00:00:00.0000000&endDateTime=2018-12-30T00:00:00.0000000

并列出日期

jq '.value[] .start .dateTime'
"2017-11-22T13:30:00.0000000"
"2017-11-23T14:00:00.0000000"
"2017-11-24T14:00:00.0000000"
"2017-11-27T10:00:00.0000000"
"2017-11-27T10:00:00.0000000"
"2017-11-27T11:00:00.0000000"
"2017-11-27T14:30:00.0000000"
"2017-11-28T09:00:00.0000000"
"2017-11-29T09:00:00.0000000"
"2017-11-29T14:00:00.0000000"

例如,2017年第12个月中没有日历事件!但是我有它们!

,然后通过缩小 2017-12-01 2018-12-30 之间的范围缩小日期的左端来进行类似的呼吁,现在我得到了:

"2017-12-01T12:30:00.0000000"
"2017-12-01T14:00:00.0000000"
"2017-12-04T08:30:00.0000000"
"2017-12-04T12:00:00.0000000"
"2017-12-06T09:00:00.0000000"
"2017-12-06T10:00:00.0000000"
"2017-12-07T13:00:00.0000000"
"2017-12-13T09:00:00.0000000"
"2017-12-13T09:00:00.0000000"
"2017-12-13T13:00:00.0000000"

我被List CalendArview和List Events文档所困惑。

我如何在日历中获得所有事件,这些事件我可以清楚地看到在2017年11月和12月以及2018年1月和2018年2月>?/p>

我是否必须在一年中每个月反复打电话给此API?(我希望我可以打一个电话,以在一年或两年内完成所有事件,之后我可以过滤,处理等(

列表事件与列表calendarview

之间的区别

当您列出事件(GET /me/events(时,您将获得非扩展日历中的项目列表。这意味着,如果您有重复发生的事件,则只会在结果中获得系列主人。您可以阅读复发模式并扩展事件。

当您列出日历视图(GET /me/calendarview?...(时,您将获得扩展的项目列表。这意味着服务器可以进行工作以扩展任何重复事件并构建日历的"视图"。因此,在这种情况下,如果您有一个经常性的事件,而不是获得系列主人,则会获得该系列的一个或多个出现(取决于在查看窗口中重复的次数(。由于这项扩展工作,您必须提供一个开始和结束时间,以将某种界限放在呼叫上。

另一种查看它的方式是日历视图更像是您在Outlook中查看日历时所看到的。

那么我所有的活动在哪里?

我不知道日历视图的窗口大小的任何特定限制。(并不是说没有一个,我只是不知道(。更有可能的解释是,您没有看到您期望的所有事件,因为返回集合的所有API请求确实具有内置的分页。默认情况下,您在响应中仅限10个项目。您还应该在响应中看到@odata.nextLink,即您可以使用的URL请求结果的下一页(同样,10是默认页面大小(。您可以使用$top参数增加页面大小,最多可达1000(IIRC(。

GET /me/calendar/calendarView?startDateTime=2017-01-01T00:00:00.0000000
    &endDateTime=2018-12-30T00:00:00.0000000&$top=1000

相关内容

  • 没有找到相关文章

最新更新