租户范围驱动器搜索
Tenant Wide Drive Search
目前,我们正在遍历租户中的每个 siteid
以使用以下方式搜索给定关键字:
/v1.0/sites/{siteid}/drive/search(q='{search-query}')
在我们的案例中,我们的租户下有 500 多个站点,因此要使用此 API 进行搜索,我们必须传递每个 siteid
并处理结果。
有办法解决这个问题吗?我们可以通过一次 API 调用在整个租户中搜索关键字吗?
目前不支持,Microsoft Graph 不支持像这样跨 site
资源进行搜索。
对于经过身份验证的用户,您可以通过 /me/drive/search(q='{search-query}')
将搜索范围限定为包括任何 items that can access。这与您通过迭代 sites
所做的有点不同,所以我怀疑这不会给您预期的结果(尽管您当然可以而且应该自己确认)。
您更有可能寻找的是 SharePoint Search REST API。您可以通过向看起来像这样的 URI 发出 GET
来使用此 API:
https://{tenant}.sharepoint.com/_api/search/query?querytext='sharepoint'
但是,为了使用此 API,SharePoint 需要一个 access_token
。
如果您使用的是 v1 端点,这应该非常简单。您需要更新您的应用程序注册以包含 SharePoint API,但一旦完成,您只需刷新现有的 access_token
,同时将 resource
切换为 https://{tenant}.sharepoint.com/
。这将为您提供一个具有调用 SharePoint API 权限的新令牌。
不幸的是,这不适用于 v2 端点,因为 SharePoint REST API 目前不支持这些令牌。因此,您需要切换到 v1 并强制您的用户重新进行身份验证,这可能更具挑战性。
目前,我们正在遍历租户中的每个 siteid
以使用以下方式搜索给定关键字:
/v1.0/sites/{siteid}/drive/search(q='{search-query}')
在我们的案例中,我们的租户下有 500 多个站点,因此要使用此 API 进行搜索,我们必须传递每个 siteid
并处理结果。
有办法解决这个问题吗?我们可以通过一次 API 调用在整个租户中搜索关键字吗?
目前不支持,Microsoft Graph 不支持像这样跨 site
资源进行搜索。
对于经过身份验证的用户,您可以通过 /me/drive/search(q='{search-query}')
将搜索范围限定为包括任何 items that can access。这与您通过迭代 sites
所做的有点不同,所以我怀疑这不会给您预期的结果(尽管您当然可以而且应该自己确认)。
您更有可能寻找的是 SharePoint Search REST API。您可以通过向看起来像这样的 URI 发出 GET
来使用此 API:
https://{tenant}.sharepoint.com/_api/search/query?querytext='sharepoint'
但是,为了使用此 API,SharePoint 需要一个 access_token
。
如果您使用的是 v1 端点,这应该非常简单。您需要更新您的应用程序注册以包含 SharePoint API,但一旦完成,您只需刷新现有的 access_token
,同时将 resource
切换为 https://{tenant}.sharepoint.com/
。这将为您提供一个具有调用 SharePoint API 权限的新令牌。
不幸的是,这不适用于 v2 端点,因为 SharePoint REST API 目前不支持这些令牌。因此,您需要切换到 v1 并强制您的用户重新进行身份验证,这可能更具挑战性。