Microsoft Graph未返回带有日期过滤器

时间:2016-03-07 17:27:10

标签: office365 microsoft-graph

我正在使用microsoft graph尝试以下请求:

https://graph.microsoft.com/v1.0/me/messages?$filter=receivedDateTime lt 2016-03-07T16:55:39Z

在此示例中,我尝试检索在提供日期之前(实际上是今天)收到的所有电子邮件。

但是,Microsoft Graph API仅返回此请求的一条消息,这是我在帐户中收到的第一条消息,尽管还有许多其他符合此条件的电子邮件。请注意,le也会遇到同样的问题。

我认为这是一个错误,我在这里提高它的可见性,但是我的例子中的任何变通办法或问题的建议都会受到赞赏。

2 个答案:

答案 0 :(得分:2)

我能够通过receiveDateTime DESC对结果进行排序来解决这个问题。

试试这个,为我工作:

me/messages?$filter=receivedDateTime lt 2016-03-07T16:55:39Z&$orderby=receivedDateTime desc

答案 1 :(得分:2)

您所描述的是一个已知问题。发生了什么:

由于某些实施细节,消息,事件,联系人和其他项目类型都可以一起存在于一个文件夹中。由于Messages集合仅返回Messages,因此我们必须跳过其他项目。目前,您将看到我们何时跳过项目作为差距。填充少于10个项目的10个项目的页面(但仍包含@odata.nextLink)是您如何识别此项目的。

现在,对于大多数实际的邮件文件夹(例如https://graph.microsoft.com/v1.0/me/MailFolders/Inbox/messages),通常会发生这种情况,但您正在查询https://graph.microsoft.com/v1.0/me/messages集合,该集合将查询范围限定为整个邮箱。最终结果是,可能有许多项目符合您的标准,而不是消息。

我们正在努力改善这种体验,但就目前而言,您应该能够浏览@odata.nextLink s,直到获得您正在寻找的所有数据。