Office 365 REST API / $ count过滤器提供错误数据

时间:2017-05-03 12:40:55

标签: api outlook office365 office365api

我试图计算不同对象的记录数。 / $ count过滤的API的响应不一致地给出了错误的响应。 我指的是this文档链接以获取使用说明。

请求网址:获取https://outlook.office.com/api/v2.0/me/Events/ $ count

回应:-1

为了验证上面提到的响应是否合法,我尝试使用跳过过滤器来获取所有事件以识别存在的实际记录数。 在请求URL之后的某些尝试之后,URL给了我最终计数:

请求网址:获取https://outlook.office.com/api/v2.0/me/events/?$ skip = 159

Response:
{ 
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Events",
"value": [
    {
        "Id": "AAMkADMzYzIxNTBjLWUyMWUtNDgzYi04NTEwLTc5YTkzMWI5MmE4MgBGAAAAAABjOnbtK9ZkTIjwInd5bfYcBwDe_ScfFfAUQaKHRwnzV1lBAAAAAAENAADe_ScfFfAUQaKHRwnzV1lBAACs2ojfAAA=",
        "CreatedDateTime": "2016-11-28T11:09:03.8359488Z",
        "LastModifiedDateTime": "2017-02-21T08:04:48.8262751Z"
    }
]

}

这意味着在跳过159条记录后,我在经过身份验证的帐户中出现了第160条记录,但$ count过滤后的API并未给我一个有效的回复。

我尝试用两个不同的帐户测试这个场景,我也注意到/ message API的这个异常。对消息/ $ count的HTTP GET调用给了我1563,而在尝试使用跳过过滤器后,我发现总计数为1396

我想知道$ count是否会返回合法回复?如果是,那么解释这个异常如果没有,那么我们应该期望对不一致的反应吗?

1 个答案:

答案 0 :(得分:1)

要计算事件数,您需要指定开始时间和结束时间。这是我使用的:

https://outlook.office.com/api/v2.0/me/calendarview/$count?startDateTime=2017-05-01T00:00:00Z&endDateTime=2017-05-31T23:59:59Z

如果您未指定日期,则会收到400,并显示以下错误消息:

{"error":{"code":"ErrorInvalidParameter","message":"This request requires a time window specified by the query string parameters StartDateTime and EndDateTime."}}