Microsoft Graph:在 SharePoint 驱动器上搜索 DriveItems returns 无结果
Microsoft Graph: Search for DriveItems on a SharePoint drive returns no results
我在 SharePoint Drive 中有文件,想要开发全文搜索。 Graph Explorer 中的以下调用有效,通过文件名或内容查找我的文件:
https://graph.microsoft.com/v1.0/drives/{my drive id}/root/search(q='my search word')
我的 Azure 托管 ASP.NET 应用程序使用 Microsoft.Graph-NuGet
包进行的相同调用总是 returns 一个空列表:
await _client
.Drives[{my drive id}]
.Root
.Search({my search word})
.Request()
.GetAsync()
_client
是经过身份验证的 GraphServiceClient
。对于身份验证,我通过 Azure AD 端点(在 Azure 门户中注册的应用程序)而不是从 v2 端点(在应用程序注册门户中注册的应用程序)接收令牌。为了排除这个原因,我使用了 v2 端点,但没有区别。
该应用程序具有 Files.ReadWrite.All
权限范围。接收、保存和删除文件工作正常。只有搜索失败。
作为测试,我为我的应用程序提供了 Graph Explorer 拥有的所有权限,没有任何区别。我比较了 URL 和 GraphServiceClient
准备的,但一切看起来都很好。
两天后描述了同样的问题。在作者的评论中,它昨天开始工作,他没有做任何改变。我今天用同样的旧代码测试了它。我能说什么?现在可以用了!貌似是微软方面的bug?
我在 SharePoint Drive 中有文件,想要开发全文搜索。 Graph Explorer 中的以下调用有效,通过文件名或内容查找我的文件:
https://graph.microsoft.com/v1.0/drives/{my drive id}/root/search(q='my search word')
我的 Azure 托管 ASP.NET 应用程序使用 Microsoft.Graph-NuGet
包进行的相同调用总是 returns 一个空列表:
await _client
.Drives[{my drive id}]
.Root
.Search({my search word})
.Request()
.GetAsync()
_client
是经过身份验证的 GraphServiceClient
。对于身份验证,我通过 Azure AD 端点(在 Azure 门户中注册的应用程序)而不是从 v2 端点(在应用程序注册门户中注册的应用程序)接收令牌。为了排除这个原因,我使用了 v2 端点,但没有区别。
该应用程序具有 Files.ReadWrite.All
权限范围。接收、保存和删除文件工作正常。只有搜索失败。
作为测试,我为我的应用程序提供了 Graph Explorer 拥有的所有权限,没有任何区别。我比较了 URL 和 GraphServiceClient
准备的,但一切看起来都很好。