Emr*_*inç 4 calendar outlook-calendar microsoft-graph
Microsoft Graph API calendarView仅限于一个月吗?我如何获得所有活动?是否有一些隐含的分页?
我首先检查之间的事件的JSON输出2017-01-01和2018-12-30:
https://graph.microsoft.com/v1.0/me/calendar/calendarView?startDateTime=2017-01-01T00:00:00.0000000&endDateTime=2018-12-30T00:00:00.0000000
Run Code Online (Sandbox Code Playgroud)
并列出日期
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"
Run Code Online (Sandbox Code Playgroud)
例如,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"
Run Code Online (Sandbox Code Playgroud)
我对List calendarView和List事件文档感到困惑.
如何才能获得我日历中的所有活动,我可以清楚地看到2017年11月和12月以及2018年1月和2月的活动?
我是否必须在一年中每个月重复调用此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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1475 次 |
| 最近记录: |