使用$search
对Microsoft Graph API中的消息执行查询时,可以使用odata.nextLink
参数(其本身包含skiptoken)遍历响应的多个页面。
我注意到对于某些搜索查询,我会在某些时候没有收到要跟随的nextLink
属性,因此我无法继续加载结果集的下一页,尽管肯定会有更多结果加载。我已通过在Outlook中与其他过滤查询进行比较来验证这一点。
重现的步骤:
在Graph Explorer中,输入以下查询: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
功能对我们无用。
答案 0 :(得分:3)
为了优化性能,默认情况下,此API最多可返回250个搜索结果。听起来你可能正在分页到250个结果的末尾,此时不会有nextLink。我们目前正在对API进行改进,因此很高兴听到这些反馈并帮助我们确定我们修复的内容的优先顺序(在这种情况下,允许您指定返回的最大结果数将帮助您实现您的方案)。谢谢!