首页 > 解决方案 > Microsoft Graph Sharepoint 搜索结果不一致

问题描述

我正在尝试在我们的应用程序中实现一项功能,以允许用户在他们的 Sharepoint 和 OneDrive 帐户中搜索文件,就像他们在 Office365 中看到的那样。

我无法理解为什么我没有看到来自搜索 API 请求的预期结果。

当我提出这样的搜索请求时,我得到了预期的 1 个结果:

https://graph.microsoft.com/v1.0/sites/{my-site -id}/drive/root/search(q='brisbane')

但是,当我这样搜索时,没有结果:

https://graph.microsoft.com/v1.0/me/drive/search(q='brisbane')

如果我修改查询/me/drive/search,我会看到来自 OneDrive 的结果,但看不到来自 SharePoint 的结果。

根据Microsoft Graph docs/me/drive/search应该搜索“用户可以访问的项目”。

这是预期的结果吗?有没有办法搜索所有当前用户的 Sharepoint 站点?还是我必须要求用户配置他们想要搜索的站点,然后分别搜索每个站点?

标签: microsoft-graph-api

解决方案


这是设计使然。您需要阅读下面的“搜索用户可以访问的项目”标题以了解这意味着什么:

除了搜索驱动器中的项目外,您的应用还可以进行更广泛的搜索,以包括与当前用户共享的项目。要扩大搜索范围,请使用 Drive 资源上的搜索方法。

搜索时/me/drive/,您正在搜索该用户的 OneDrive 以查找他们自己上传或明确与他们共享的文件。存在于用户碰巧有权访问的 SharePoint 库中的文件与与该用户“共享”的文件完全不同。


推荐阅读