使用 $search
对 Microsoft Graph API 中的消息执行查询时,可以使用 odata.nextLink
参数(它本身包含一个 skiptoken)遍历响应的大量页面。
我注意到,对于某些搜索查询,我将在某个时候不会收到要遵循的nextLink
属性,因此我无法继续加载结果集的下一页,尽管肯定有更多的结果要加载。我已经通过在 Outlook 中与其他过滤器查询进行比较来验证这一点。
重现步骤:
-
在 Graph 资源管理器中,输入以下查询:
https://graph.microsoft.com/v1.0/me/messages?$search="to:[your email address]"&$top=25
-
加载结果时,单击
@odata.nextLink
的值以加载下一页 -
继续按照
@odata.nextLink
操作,直到结果中没有返回nextLink
参数 -
您会注意到您尚未到达收件箱的开头(按时间顺序),但没有要遵循
@odata.nextLink
属性
我只能假设这是 API 的错误 - 我在文档中没有看到有关页面限制 (https://msdn.microsoft.com/office/office365/api/complex-types-for-mail-contacts-calendar#UseODataqueryparametersSearchrequests) 的任何内容。
有人能帮忙吗?这个问题本质上使$search
功能对我们毫无用处。
为了优化性能,默认情况下,此 API 目前最多返回 250 个搜索结果。听起来您可能正在分页到 250 个结果的末尾,此时不会有 nextLink。我们目前正在对 API 进行改进,因此很高兴听到此反馈并帮助我们确定修复事项的优先级(在这种情况下,允许你指定返回的最大结果数将有助于实现你的方案)。谢谢!