microsoft-graph-api - 是否可以在正文中搜索具有匹配子字符串以及匹配日期的消息?
问题描述
我想在单个请求中获取按日期和正文中的内容过滤的消息列表(当然,如果可能的话)。
我完全能够从以下端点收到一个好的响应(200):
https://graph.microsoft.com/v1.0/users/user@company.com/messages?search="body:substring"
但是,这给了我一个广泛的回应,因为我只对特定周之间的案例感兴趣。此外,不可能将过滤器参数与搜索参数一起使用。
然后,关于日期过滤器,我可以使用:
https://graph.microsoft.com/v1.0/users/user@company.com/messages?$filter=(sentDateTime ge 2000-01-01) and (sentDateTime le 2100-01-01)
问题是:我也无法过滤正文,因为我收到错误 400 - 'Bad Request: Invalid filter Clause':
https://graph.microsoft.com/v1.0/users/user@company.com/messages?$filter=contains(body, substring)
现在,我的工作是:我从user@company.com请求有关特定周的所有消息,并在收到该响应后,在我的机器中本地过滤正文。这有效,但不如复合请求快。
解决方案
您可以在您的 KQL 搜索中包含特定的日期限制,例如
https://graph.microsoft.com/v1.0/me/messages?$search="(sent>=2019-01-01 AND sent<=2019-02-01) AND (body:asx)"
那应该比过滤器产生更好的性能