加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Microsoft Graph API calendarView仅限于一个月吗?如何获得所有

发布时间:2020-12-14 01:35:44 所属栏目:Windows 来源:网络整理
导读: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.000
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月和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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读