获取没有开始和结束日期的事件
Get events without start and end date
在 Microsoft Graph Calendar API 中,我可以通过请求 url:
获取所有事件
/me/calendarView/delta?startDateTime={start_datetime}&endDateTime={end_datetime}
但我必须指定开始日期和结束日期。有没有办法在不指定日期的情况下获取所有事件?
只是将日期从请求中删除给我一个错误,它缺少这些参数。
/calendarView
端点旨在为您提供给定日期 运行ge 的日历呈现视图。如果没有日期 运行ge,API 将不得不呈现日历中的每个事件,可能要追溯到几十年前。这样做的计算成本可能过高,更不用说它对大规模性能的负面影响了。
如果您只想要原始的底层 event
对象,您可以使用 /events
端点。这将为您提供包含该日历中每个事件的分页结果。您将需要进行一些 post 处理,以根据主事件(即具有 "eventType": "seriesMaster"
的事件)为重复事件呈现单个实例。
一般来说,我建议使用 /calendarView
,因为它会为您渲染系列实例。您可以通过将足够大的 window 传递给它来有效地模仿检索 "everything",尽管会降低性能。
为了说明,在 Graph Explorer return 整整十年 (2009-2019) 的事件中调用以下 URI:
https://graph.microsoft.com/v1.0/me/calendarview?startdatetime=2009-01-01&enddatetime=2019-12-31
值得注意的是,return 花费了 6,436 毫秒,并且数据仅包含少量事件。当我 运行 针对 my 日历进行同样的查询时,它花费了 13,883 毫秒。所以纯粹从性能的角度来看,我不建议定期查询一次超过 12 个月(即 startdatetime=2018-01-01&enddatetime=2018-12-31
花费了 2795 毫秒)。
在 Microsoft Graph Calendar API 中,我可以通过请求 url:
获取所有事件/me/calendarView/delta?startDateTime={start_datetime}&endDateTime={end_datetime}
但我必须指定开始日期和结束日期。有没有办法在不指定日期的情况下获取所有事件?
只是将日期从请求中删除给我一个错误,它缺少这些参数。
/calendarView
端点旨在为您提供给定日期 运行ge 的日历呈现视图。如果没有日期 运行ge,API 将不得不呈现日历中的每个事件,可能要追溯到几十年前。这样做的计算成本可能过高,更不用说它对大规模性能的负面影响了。
如果您只想要原始的底层 event
对象,您可以使用 /events
端点。这将为您提供包含该日历中每个事件的分页结果。您将需要进行一些 post 处理,以根据主事件(即具有 "eventType": "seriesMaster"
的事件)为重复事件呈现单个实例。
一般来说,我建议使用 /calendarView
,因为它会为您渲染系列实例。您可以通过将足够大的 window 传递给它来有效地模仿检索 "everything",尽管会降低性能。
为了说明,在 Graph Explorer return 整整十年 (2009-2019) 的事件中调用以下 URI:
https://graph.microsoft.com/v1.0/me/calendarview?startdatetime=2009-01-01&enddatetime=2019-12-31
值得注意的是,return 花费了 6,436 毫秒,并且数据仅包含少量事件。当我 运行 针对 my 日历进行同样的查询时,它花费了 13,883 毫秒。所以纯粹从性能的角度来看,我不建议定期查询一次超过 12 个月(即 startdatetime=2018-01-01&enddatetime=2018-12-31
花费了 2795 毫秒)。